【发布时间】:2012-04-09 02:12:11
【问题描述】:
如果我在理解 Java 何时需要初始化变量而不是简单声明时遗漏了一些东西,我会尝试更深入地理解。在下面的代码中,变量 'row' 不需要被赋值来编译和运行,但是,变量 'column' 需要。
注意:该程序没有任何用处 - 它已被修剪为仅显示此问题所需的内容,以免浪费人们宝贵的时间。
这里是sn-p的代码:
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在顶部编译时没有初始化,而Java认为column“可能没有被初始化”?
【问题讨论】:
-
正如 Crozin 下面提到的,两个变量都需要初始化。您恰好在第 3 行初始化行,但如果您不在第 2 行进行初始化,则可能永远不会(根据编译器)初始化列。
标签: java variables initialization declaration