Подсчёт
Счётчик как состояние алгоритма
Во многих задачах не нужно сохранять сами найденные элементы. Достаточно узнать, сколько раз встретилось нужное условие. Для этого используют переменную-счётчик: она начинается с нуля и увеличивается каждый раз, когда очередной элемент подходит.
int count = 0;
for (int value : numbers) {
if (value % 2 == 0) {
count++;
}
}
После цикла count содержит количество чётных элементов.
Сам алгоритм состоит всего из трёх идей: пройти по данным, проверить условие и обновить счётчик.
Считать можно не только элементы
Счётчик полезен везде, где событие можно выразить условием. Например, можно считать положительные числа, строки определённой длины, переходы значения через заданную границу или количество цифр в числе.
Иногда за один проход удобно вести несколько счётчиков одновременно. Например, отдельно посчитать положительные и отрицательные значения.
int positive = 0;
int negative = 0;
for (int value : numbers) {
if (value > 0) {
positive++;
} else if (value < 0) {
negative++;
}
}
Ноль здесь сознательно не относится ни к одной группе. Условие задачи определяет, какие случаи нужно учитывать и какие счётчики действительно нужны.
Частая ошибка: неправильное начальное значение
Если до начала обработки ещё ничего не найдено, количество равно нулю.
Поэтому обычный счётчик почти всегда инициализируется значением 0.
Начать с единицы означало бы заранее засчитать событие, которого ещё не произошло.