java System.in.read()和System.in.skip()的作用

System.in.skip(2);

当用户入字母,按Enter 键后,虽然显示只输入了一个字母,但是在系统内存中实际保存了3个ASCII码。

第一个ASCII码是用户键入的字母的ASCII码,第二个是回车的ASCII码013,第三个是换行的ASCII码010。

在这种情况下,System.in.read();  语句会在第二、三轮循环时分别读取内存中的ASCII 码013和010,而不会要求用户键入新的字母。只有当第四轮循环时,由于键入值已循环完毕,所以停止!

ch=(char)System.in.read()

执行System.in.read()方法将从键盘缓冲区读入一个字节的数据,然而返回的16位的二进制数据,其低8位为键盘的ASCII码,高8位为0     ******** ********

代码例子:

import java.io.*;

class KY5_3 {
          public static void main(String args[]) throws IOException { 
            char ch; 
            System.out.println("抽奖游戏,祝您好运!"); 
            System.out.println("按 1、2、3 数字键后回车,可得大奖!"); 
            System.out.println("按空格键后回车,可退出本游戏."); 
            while ((ch=(char)System.in.read())!=' ')
            {
               System.in.skip(2);     // 跳过回车键 
               switch (ch) {
               case '1':
                 System.out.println("恭喜您得大奖,一辆汽车!");
                 break;
               case '2':
                 System.out.println("不错呀,您得到一台笔记本电脑!");
                 break;
               case '3':
                 System.out.println("没有白来,您得到一台冰箱!");
                 break;
               default:
                 System.out.println("对不起,没有奖品给您!欢迎下次光临。");
             }
          }
        }
       }

猜你喜欢

转载自blog.csdn.net/qq_40956679/article/details/80763293
今日推荐