java simple quesion

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:12:24
class wo3
{
public static void main(String [] args)
{
int x;
try
{x=System.in.read();
}catch(Exception e)()

while(x!='a')
{System.out.println(x);
try
{x=System.in.read();
}catch(Exception e)()
}
}

}
D:\zkjava>javac wo3.java
wo3.java:8: 需要 '{'
}catch(Exception e)()
^
wo3.java:18: 进行语法解析时已到达文件结尾
}
^
2 错误
错在什么地方?谢谢!
为什么一定要赋初值,C++里面都可以不赋。
为什么结果是D:\zkjava>java wo3
2
50
13
10而不是50?

我不是很明白你说的问题,你问的是不是为什么输入2后,为什么会出来3个数,而不是一个50?

我的理解是,代码中
while(x!='a')
会判断x值与a的ASCII码是否一致,如果不一致,则执行
System.out.println(x)
输出x值的ASCII码,然后将输出的值的ASCII码赋值给x,再次进行判断;

你先输入一个2,而2的ASCII码是50,与a的ASCII码(97)不一致,所以输出50,然后又将50赋值给了x,这时候系统比较50与a的ASCII码的时候出错,至于为什么输出的是13 10,我估计这个是回车的ASC码,只是推测。因为不论初始输入的是什么,最后都有13 10,而且,显示13 10后再按回车还是显示13 10。

两个 catch(Exception e)() 语句后面的()应该改为{}x需要赋初值