为什么这不想编译,如果在其他条件下如if(8> 0)将
public class StartClass {
public static void main(String[] args) {
int i;
boolean b = true;
if (b) {
i = 1;
}
System.out.println(i);//error
}
}
答案 0 :(得分:0)
答案是:
java不会将initial value赋予在方法中声明的变量..
int i
在main方法中声明,因此没有默认的初始值...
如果 b 永远不会成为现实,那么我永远不会被初始化,
所以编译器会抱怨,因为 i 可能没有价值
ergo:你无法做System.out.println(i);