我想了解更深层次的内容,如果我想知道什么时候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