java 控制台输入的问题·····

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:29:32
public static void main(String[] args) {
int b = 0;
System.out.println("请输入你要求的数循环次数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
b=br.read();
} catch (IOException e) {
e.printStackTrace();
}

Random r = new Random();

System.out.println("-----------循环开始------------");
System.out.println(b);
for(int i=0; i< b;i++){
int a = r.nextInt(2);
System.out.println(a);
if(a==1){
System.out.println("抛出的是正面");
}else{
System.out.println("抛出的是反面");
}
}
}

上面段代码是在main函数里面运行的,我在控制台输入4,怎么b的值是52?

错在b=br.read();这句
因为read()返回的是,作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,你输入4,返回的4的ASCII,是52,所以。。。

改成b=Integer.parseInt(br.readLine());

52是正确的
显示的是ASCII码
数字0-9在ASCII中分别为48-57