我写了一个简单的“在多维数组中查找数字”,包含在官方 java 教程中。这是教程中包含的代码:
class LabeledBreak {
public static void main(String[] args) {
int [][] numbers = {
{22, 34, 675, 23, 23},
{34, 76, 98, 23, 11},
{65, 234, 87, 23, 76}
};
int searchFor = 123;
boolean found = false;
int i;
int j = 0; // <-- this line
search:
for (i = 0; i < numbers.length; i++) {
for (j = 0; j < numbers[i].length; j++) {
if (searchFor == numbers[i][j]) {
found = true;
break search;
}
}
}
if (found == true)
System.out.println("Found " + searchFor + " at index " + i + ", " + j);
else
System.out.println(searchFor + " not found!!!");
}
我不明白在这里初始化“j”有什么意义。我尝试删除初始化语句并使其只是一个声明。但我得到了那个错误:
“变量 j 可能尚未初始化”
为什么我必须初始化“j”?为什么“i”也不需要初始化?