Как определить допустимый диапазон индексов для массива?

Я изучаю 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 и меньше ли оно свойства length

GBlodgett 09.03.2019 22:13
0 <= index < array.length
ernest_k 09.03.2019 22:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
821
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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, 10)
  • [0, 9]
  • 0 ≤ я ≤ 9
  • 0 ≤ я < 10

Вот где я в тупике. Возможно, это ошибка со стороны университета, написавшего упражнение, но оно не принимает от 0 до 9. Правильно ли я предполагаю, что это 0 <= i =< 9?

Kyle Barnes 09.03.2019 22:20

Это объясняет, спасибо. Я полагаю, что тогда Тоусон взял очень технические корни.

Kyle Barnes 09.03.2019 22:23

Другие вопросы по теме