java编程问题,求助!!!

来源:百度知道 编辑:UC知道 时间:2024/05/04 10:33:55
新手编JAVA,请看一下面我程序编的正确么?为什么运行时无论输入什么数字,返回结果都是123????

import java.lang.*;
import java.io.*;
public class Assignment{
static int test(int val){
if(val>13)
return 123;
else
return 321;

}
public static void main(String args[]){
try{

System.out.println("please enter a integer:");
int as=System.in.read();
int SS=Assignment.test(as);

System.out.println("test:"+SS);
}
catch(IOException ioe){

System.out.println("you are error!!!");}
}
}

int as=System.in.read();
是不对的。
Java API中说 Reads the next byte of data from the input stream.
所以你的as是输入的第一个字符的ANSCII码。

晕!
注意你的这句
int as = System.in.read();
--------------------------
System.in.read()返回的是你输入的字符串的“下一个”字符的ASCII码的十进制数,比如你输入“123”,那么as等于“1”的ASCII码的十进制数,也就是“49”.

我们键盘上的输入字符最小就是33,所以永远大于13,输出的自然是\"123\"了。