可能重复:
Uninitialized variables and members in Java
Why are local variables not initialized in 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
,那么为什么错误会消失呢?
答案 0 :(得分:6)
无必须初始化局部变量,类字段变量具有默认值
局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。访问未初始化的局部变量将导致编译时错误[...]
答案 1 :(得分:1)
Beucase forloop
是条件循环。并且根据编译器c
可能没有初始化,如果没有进入该条件循环