全国考研教育网:java程序,为什么结果是这样地?

来源:百度文库 编辑:高考问答 时间:2024/05/08 17:26:16
class www{
public static void main(String [] args){
int b=0;
System.out.println("请输入数");
while(true){
try{
b=System.in.read();
}
catch(Exception e){}
if(b=='\t' || b=='\n'){break;}
else{
int sum=b-'0';
System.out.println(sum);
}
}
}

}

我想实现的功能是从键盘上输入一个数,然后就显示在屏幕上,可是我输入32按回车的时候就显示了
3
2
-35
这是为什么呢
正确的代码该怎么写

把if(b=='\t' || b=='\n')改成if(b=='\r')
可能会符合你的要求,不过从键盘获取值一般不会这样实现,可以这样:
import java.io.*;

class MyReader{
public static void main(String [] args)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
try
{
input = br.readLine();
}catch(IOException e)
{
System.out.println("io error");
}
int number = Integer.parseInt(input);
}
}