2

可能重复: Java 中
未初始化的变量和成员
为什么在 Java 中未初始化局部变量?

Java变量中有默认值,对吧?甚至数组也由编译器初始化。
所以我无法理解以下内容:

int c;  
for(int i = 0; i < 10; i++){  
   c = i + 5;  
}  
System.out.println("Result = "+c);  

为什么会出现编译器错误:

局部变量 c 可能尚未初始化

编译器默认没有c初始化为? 那么为什么我会得到这个错误,如果我明确这样做,为什么错误会消失? 0
int c = 0

4

2 回答 2

6

不必初始化局部变量,类字段变量具有默认值

局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果您无法在声明它的地方初始化局部变量,请确保在尝试使用它之前为其分配一个值。访问未初始化的局部变量将导致编译时错误[...]

于 2012-07-19T06:15:48.357 回答
1

Beucaseforloop是条件循环。c 如果没有进入那个条件循环,编译器可能没有初始化

于 2012-07-19T06:17:20.873 回答