Тело цикла выполнится пять раз: при k, равном 12, 10, 8, 6 и 4. После следующего уменьшения k станет 2, и условие k > 3 окажется ложным.
Подсчёт числа проходов цикла for
Тело цикла выполнится пять раз: при k, равном 12, 10, 8, 6 и 4. После следующего уменьшения k станет 2, и условие k > 3 окажется ложным.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо определить, сколько раз будет выполнен приведённый ниже цикл.
for (int k = 12; k > 3; k -= 2) {}
Ответ
Тело цикла выполнится пять раз: при k, равном 12, 10, 8, 6 и 4. После следующего уменьшения k станет 2, и условие k > 3 окажется ложным.
В for сначала один раз выполняется инициализация, затем перед каждой итерацией проверяется условие. Шаг k -= 2 выполняется после тела, включая пятую итерацию.
Таким образом, проверок условия будет шесть, а выполнений тела — пять. Значение 3 вообще не встречается в этой последовательности. Пустое тело не меняет логического подсчёта, хотя компилятор может удалить ненаблюдаемый цикл при оптимизации.