Непонятно как работает counts[x]++
Как понять этот код counts[x]++
?
Смотрела примеры, запускала код с отладчиком. Можно самый простой пример?
Как понять этот код counts[x]++
?
Смотрела примеры, запускала код с отладчиком. Можно самый простой пример?
++
.Возьмём вот такой код:
int number = 5;
number++;
System.out.println(number);
Вставим в метод main()
и запустим. Получаем вывод:
6
То есть переменная увеличилась на один. Отсюда вывод:
number++;
то же самое, что и
number = number + 1;
Обновление: не совсем тоже самое, см этот ответ. Но в данном конкретном случае разницы не будет. А чтобы разницы не было ни в каком случае, можно number++
на ++numner
заменить.
counts[x]
У нас же была другая запись:
counts[x]++;
Раз мы уже знаем, что такое ++
, то осталось лишь понять что такое counts[x]
.
Представим эту запись попроще: counts[4]
. counts
- это массив. А 4 - это индекс в массиве, порядковый номер элемента в массиве (Первый индекс массива - ноль!!!). Чтобы стало понятней, продемонстрирую на коде:
int counts = new int[]{
4, //Это counts[0]
3, //Это counts[1]
9, //Это counts[2]
5, //Это counts[3]
7 //Это counts[4]
};
System.out.println(counts[4]); //Выведет 7, так как в counts[4] мы положили число 7
А x
- это переменная (целочисленного типа). До этого мы обращались к индексу массива, записывая в квадратные скобки число (counts[4]
). Но в квадратные скобки можно записать и целочисленную переменную. Тогда из переменной будет взято число - оно и будет индексом массива, к которому мы обратимся:
int x = 4;
System.out.println(counts[x]); // 7
counts[x]++;
System.out.println(counts[x]); // а теперь 8
Запись counts[x]++
означает, что мы обращаемся к массиву counts
, берём элемент с индексом x
, и увеличиваем этот элемент на единицу. Индекс x
при этом не изменяется.
Выражение counts[x]++ увеличивает значение элемента массива counts, индекс которого равен x, на 1.
Пример использования: предположим, что у нас есть массив counts, который содержит количество разных цветов шариков в корзине, а также переменная x, которая хранит текущий выбранный цвет шарика. Чтобы увеличить счетчик выбранного цвета, мы можем использовать выражение counts[x]++:
//JS
let counts = [0, 0, 0, 0]; // массив для подсчета количества шариков разных цветов
let x = 2; // выбранный цвет - третий по порядку (индекс 2)
counts[x]++; // увеличиваем счетчик выбранного цвета на 1
console.log(counts); // [0, 0, 1, 0]
//Java
int[] counts = new int[4]; // массив для подсчета количества шариков разных цветов
int x = 2; // выбранный цвет - третий по порядку (индекс 2)
counts[x]++; // увеличиваем счетчик выбранного цвета на 1
System.out.println(Arrays.toString(counts)); // [0, 0, 1, 0]
В этом примере после выполнения counts[x]++ значение counts[2] увеличивается на 1, и теперь массив counts выглядит как [0, 0, 1, 0], что означает, что в корзине есть один шарик третьего цвета.