奇怪的程序,输入和输出不一致
class Person
{
static int age;
void shout()
{
System.out.println( "my age is "+age);
}
public static void main(String [] args)
{
Person person = new Person();
System.out.print( "请输入年龄: ");
try
{age=System.in.read();
}catch(Exception e){}
person.shout();
}
}
自己写了个输入输出的程序,可是不知为什莫输入的数值和输出的数值不一致,是不是哪里有问题,请高手帮忙
以下是命令提示符上的信息:
D:\javawork\lesson3> java Person
请输入年龄:25
my age is 50
D:\javawork\lesson3> java Person
请输入年龄:67
my age is 54
D:\javawork\lesson3> java Person
请输入年龄:23
my age is 50
D:\javawork\lesson3> javac Person.java
D:\javawork\lesson3> java Person
请输入年龄:12
my age is 49
D:\javawork\lesson3> javac Person.java
D:\javawork\lesson3> java Person
请输入年龄:12
my age is 49
------解决方案--------------------因为你读入的ASCII码,并且只读了第一个字符.如12,只读入了1,其ASCII码为49,故输出49.输入67,只读入6.故输出其ASCII码为54.
------解决方案--------------------System.in.read()读取输入的字符,并返回字符的Unicode码,它是特点或者说成缺点就是只能读一个字符,在你的例子里自然就是第一个数字了
------解决方案--------------------可以这样哦
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println(br.readLine());