不确定Java中变量的默认初始化

时间:2012-07-19 06:14:32

标签: java variables initialization

  

可能重复:
  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,那么为什么错误会消失呢?

2 个答案:

答案 0 :(得分:6)

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

  

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

答案 1 :(得分:1)

Beucase forloop是条件循环。并且根据编译器c可能没有初始化,如果没有进入该条件循环