正解 作者: 四川男人 时间: 2014-4-20 22:39
public static void main(String[] args) {
int i = 5;
if (i<15)
int x = 10;// if后面不跟大括号的话,只能跟一句话,然而
// int x = 10; jvm会将它看成两句:int x; x=10;所以x = 10 已经在if代码块
// 块儿外面了,所以会报错
System.out.println("bbbbbbbb");
}作者: 宋大龙 时间: 2014-4-20 23:02
if语句如果省略大括号的话只可以执行离他最近的一句 看好是一句 你的第一个代码执行出来是aaaaaaaa吧
而第二个代码 if (i<15) int x = 10; 之所以会编译错误是因为 Java虚拟机在编译的时候 会把int x = 10;
看做 int x; x = 10; 这样的话就成了两句话了 所以会报错