我想了解更深層次的內容,如果我想知道什麼時候Java需要初始化一個變量與簡單的聲明。在下面的代碼中,變量'row'不需要分配一個值來編譯和運行,然而變量'column'卻可以。在Java中,爲什麼某些變量首先需要初始化,其他變量只需要聲明?
注意:這個程序沒有任何用處 - 它已被修剪,只顯示這個問題的必要條件,不會浪費人們寶貴的時間。
下面的代碼片段:
int row; //row doesn't need initialization
int column=0; //column does need initialization
for (row=0; row<2; row++){
for (column=0; column<2; column++){
}
}
System.out.print("Col:" + column + " row:" + row);
爲什麼row
編譯W/O頂部初始化,但Java會把column
「可能尚未初始化。」?
由於Crozin在下面提到,兩個變量都需要初始化。你只是在第3行初始化行,但可能從來沒有(根據編譯器)初始化列,如果你不在第2行。 – 2012-04-09 02:26:03