Я изучаю Java и выполняю упражнения, размещенные в Интернете в Университете Тоусона, и я застрял в этом упражнении.
Вот код:
import java.util.Scanner;
public class Overflow2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[]vals = new int[10];
System.out.println("how many values should be stored in the array? ");
int count = scan.nextInt();
for (int i = 0; i < count; i++) {
vals[i] = count - i ;
}
System.out.println("Which value do you wish to retrieve? ");
int which = scan.nextInt();
System.out.println("Your value is " + vals[which]);
}
}
Для линии
for (int i = 0; i < count; i++) {
vals[i] = count - i ;
}
Как определить допустимый диапазон индекса? Я предположил, что учитывая
int[]vals = new int[10];
диапазон индекса будет равен длине массива - 1, поэтому 9, но это не кажется правильным. Формат решения такой
число -- оператор равенства -- i -- оператор равенства -- число
Спасибо за любую помощь.
0 <= index < array.length



I assumed that ... the index range would be the length of the array - 1, so 9, but this doesn't seem to be correct.
Это правильно. Допустимые индексы от 0 до 9 включительно. Программа будет работать, только если пользователь введет 10 или меньше. Если они введут что-то большее, чем 10, произойдет сбой с ArrayIndexOutOfBoundsException.
Вы ошибаетесь только в том случае, если кто-то педантичен в отношении терминологии: если быть точным, максимальный индекс равен 9. спектр будет иметь две конечные точки. Вы можете описать диапазон по-разному:
Вот где я в тупике. Возможно, это ошибка со стороны университета, написавшего упражнение, но оно не принимает от 0 до 9. Правильно ли я предполагаю, что это 0 <= i =< 9?
Это объясняет, спасибо. Я полагаю, что тогда Тоусон взял очень технические корни.
Проверьте, больше ли оно
0и меньше ли оно свойстваlength