if语句中的变量初始化

时间:2016-11-21 20:26:17

标签: java initialization local

为什么这不想编译,如果在其他条件下如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
}
}

1 个答案:

答案 0 :(得分:0)

答案是:

java不会将initial value赋予在方法中声明的变量..

int i在main方法中声明,因此没有默认的初始值...

如果 b 永远不会成为现实,那么永远不会被初始化,

所以编译器会抱怨,因为 i 可能没有价值 ergo:你无法做System.out.println(i);