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

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

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

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

for elem in 1..=9 { if elem % 2 == 0 { let res = elem * elem; println!("{}", res); } else if elem % 3 == 0 { let res = elem * elem * elem; println!("{}", res); } }

Вывод здесь написан дважды. Хочется оставить один println! после веток. Но для чисел, которые не делятся ни на 2, ни на 3, результата нет, и печатать их не нужно. Добавим ветку else с continue: она сразу переходит к следующему шагу, а общий вывод срабатывает только для подходящих чисел.

for elem in 1..=9 { let res = if elem % 2 == 0 { elem * elem } else if elem % 3 == 0 { elem * elem * elem } else { continue; // перейдем на новую итерацию }; println!("{}", res); // выполнится, если делится на 2 или 3 }

Так же удобно не печатать одно выбранное число, не прерывая весь круг:

for i in 0..5 { if i == 2 { continue; } println!("{}", i); // выведет 0, 1, 3 и 4 }

Два пропуска подряд тоже допустимы:

for n in 0..4 { if n == 1 || n == 2 { continue; } println!("{}", n); // выведет 0 и 3 }

Дано число:

let skip = 3;

В переборе 0..6 выводите шаг, кроме случая, когда он равен skip.

Дан следующий код:

for a in 0..3 { if a == 0 { continue; } println!("{}", a); }

Перечислите числа, которые выведет программа.

Пройдите 0..5, пропустите шаги с четным значением и выведите остальные.

Напишите цикл, который выведет только четные числа от 1 до 100, пропуская нечетные с помощью continue.

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