#java
#java
Вопрос:
Итак, я завершаю проект для моего профессора в школе, и я продолжаю получать этот код ошибки для своего проекта. Вот мой код:
if(bandOrder[counter] > counterMax) {
counterMax = bandOrder[counter].length;
}
}
Комментарии:
1.
bandOrder[counter]
возвращает массив. вы пытаетесь сравнить массив со значением counterMax.2. Может быть полезно включить вывод ошибки компилятора вместе с вашим кодом.
3. Какой код ошибки?
Ответ №1:
Похоже, что bandOrder
это 2d массив double[][]
, а counterMax — примитив int
.
Итак, ваш код bandOrder[counter]
вернул массив double[]
В итоге это привело к сравнению double[]
с int
, которое не разрешено в java, поэтому вы получаете исключение.
Ответ №2:
Похоже, вы пытаетесь найти максимальную длину в вашем массиве массивов bandOrder
. Вы могли бы сделать
if (bandOrder[counter].length > counterMax) {
counterMax = bandOrder[counter].length;
}
или просто
counterMax = Math.max(counterMax, bandOrder[counter].length);
Ответ №3:
if(bandOrder[counter].length > counterMax) {
counterMax = bandOrder[counter].length;
}
}
Это то, что вы пытаетесь проверить и достичь?
Как видно из журнала ошибок, вы, безусловно, сравниваете массив bandOrder[counter]
с int counterMax
. Внесите вышеуказанные изменения, и он должен работать просто отлично. (если та же логика применима к вашему приложению)
Комментарии:
1. Спасибо за ваш быстрый ответ. Единственное, что теперь выдает сообщение об ошибке с надписью Main.java: 40: ошибка: счетчик переменных, возможно, не был инициализирован bandOrder = new double [счетчик][];
2. @Corbin вам придется инициализировать переменную
counter
чем-то вродеcounter = 0
или значениеcounter
должно быть передано в качестве аргумента, если оно используется в методе. Возможно, вы объявилиcounter
, но ошибка ясно указывает на то, что ей не присвоено значение.