局部变量初始化错误

时间:2013-12-15 08:14:57

标签: java variables

我想知道给定值的局部变量是什么时候

这就是为什么我在以下情况下得到一个未初始化的错误局部变量

int i=10;
int j;

if(i==10)
{ 
j=100;
}
System.out.println(j);//error

这里的编译器不够聪明,无法确定j的值,即使在上面的行中它已被明确声明为i = 10;

因为我认为在编译期间没有给出值,我得到了这个初始化错误

是原始类型int,在运行时给出10作为其值??

3 个答案:

答案 0 :(得分:2)

因为i是局部变量,int i=10是在运行时执行的,所以在编译时,编译器不知道i的值,因此编译器无法确定{{} 1}}必须为真,它只能假设两种情况。如果if (i==10)不等于10,则i将使用未初始化的println,这就是您收到错误的原因。

答案 1 :(得分:1)

在执行if语句之前必须初始化j。必须定义和初始化所有局部变量。

在你的程序中,因为编译器不能识别i的值,所以i == 10没有意义并且给出错误。

答案 2 :(得分:-1)

尝试删除if语句中的花括号。