public class Test {
public static void main(String... args) {
int[][] arrayOfInts = {
{23, 3, 65, 46},
{65, 55, 2, 3},
{55, 22, 35, 47}
};
int i, j, toFind = 2;
boolean foundIt = false;
search:
for(i = 0; i < arrayOfInts.length; i++) {
for(j = 0; j < arrayOfInts[i].length; j++) {
if(arrayOfInts[i][j] == toFind) {
foundIt = true;
break search;
}
}
}
if(foundIt)
System.out.println("Element found at index " + i + ", " + j);
else
System.out.println("Element not found");
}
}
Дорогой СО, У меня возникли проблемы с составлением вышеуказанного кода. Мой код отлично работает, когда я инициализирую свою целочисленную переменную j до 0 (j = 0
).Ошибка в моем простом java-коде ..!
Но мой вопрос Why should i initialize j = 0 ?
Почему я получаю variable j might not have been initialized
ошибку в строке
System.out.println("Element found at index " + i + ", "+ J);
Если моя ИНТ переменная i
хранит значение, почему косяк j
магазин .. ??
P.S. Noob здесь .. !!
Чтобы расширить другие ответы, arrayOfInts.length вычисляется во время выполнения, а не во время компиляции. В этом очень простом случае компилятор мог бы, вероятно, определить, что arrayOfInts.length не может быть нулевым (мы можем видеть, что он не равен нулю, просто прочитав код), но в более общем случае он не может. Следовательно, компилятор предполагает, что внутренний цикл цикла никогда не будет выполнен. – jarmod