2012-07-19 22 views
2

Possible Duplicate:
Uninitialized variables and members in Java
Why are local variables not initialized in Java?不知道有關使用Java

Java變量的變量默認初始化有默認值,對不對?即使數組也是由編譯器初始化的。
所以我不能瞭解以下內容:

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

爲什麼我得到一個編譯錯誤:

The local variable c may not have been initialized

是不是c由編譯器初始化爲0默認?
那麼,爲什麼我會得到這個錯誤,爲什麼錯誤消失,如果我明確地做int c = 0

回答

6

沒有局部變量必須進行初始化,類字段變量的缺省值是

Local variables are slightly different; the compiler never assigns a default value to an uninitialized local variable. If you cannot initialize your local variable where it is declared, make sure to assign it a value before you attempt to use it. Accessing an uninitialized local variable will result in a compile-time error [...]

+0

1)這個引用來自哪裏? 2)這是否也適用於數組? – Jim 2012-07-19 06:18:25

+0

是的,它適用於Object,鏈接提供在報價末尾 – 2012-07-19 06:19:00

1

Beucase forloop是有條件的循環。並根據編譯器c可能沒有初始化,如果沒有進入該條件循環

+0

啊!好的。所以這裏的編譯器不夠聰明,無法理解它會進入循環? – Jim 2012-07-19 06:19:03