首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

奇怪的程序,输入和输出不一致解决办法

2012-01-19 
奇怪的程序,输入和输出不一致classPerson{staticintagevoidshout(){System.out.println( myageis+age)

奇怪的程序,输入和输出不一致
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());

热点排行