Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmLpCn 131 of 390 menu
◀ ▶

Инструкция continue в C++

Помимо инструкции break, завершающей работу цикла, существует также инструкция continue, запускающая новую итерацию цикла. Данная инструкция иногда может быть полезна для упрощения кода, хотя практически всегда задачу можно решить и без нее. Давайте посмотрим на практическом примере.

Пусть у нас есть числа от 1 до 9. Давайте переберем их циклом и числа, которые делятся на 2, возведем в квадрат и выведем в консоль, а числа, которые делятся на 3, возведем в куб и выведем в консоль.

Вот решение описанной задачи:

for (int i = 1; i <= 9; ++i) { if (i % 2 == 0) { int res = i * i; std::cout << res << "\n"; } else if (i % 3 == 0) { int res = i * i * i; std::cout << res << "\n"; } }

Как вы видите, строчка вывода res повторяется два раза. Давайте вынесем ее за if, вот так:

for (int i = 1; i <= 9; ++i) { int res = 0; if (i % 2 == 0) { res = i * i; } else if (i % 3 == 0) { res = i * i * i; } std::cout << res << "\n"; // вынесли вывод за условие }

Теперь код, однако, работает немного не так: вывод переменной res выполнится и для чисел, которые не прошли через if. По условию задачи это не нужно.

Поправим проблему, добавив к нашему if еще условие else, которое будет срабатывать для чисел, не делящихся на 2 и на 3, и вызовем там инструкцию continue, которая сразу же будет перебрасывать нас на новую итерацию цикла:

for (int i = 1; i <= 9; ++i) { int res = 0; if (i % 2 == 0) { res = i * i; } else if (i % 3 == 0) { res = i * i * i; } else { continue; // перейдем на новую итерацию цикла } std::cout << res << "\n"; // выполнится, если делится на 2 или 3 }

Напишите цикл в диапазоне от 10 до 100, который выведет все числа, пропуская те, сумма первой и второй цифры которых равна 3.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить