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

Цикл while в Rust

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

Круг закончится, когда выражение перестанет быть истинным. Если оно было ложным с самого начала, тело не выполнится ни разу. Отдельной формы с проверкой после тела в Rust нет: условие стоит в заголовке, до команд.

Часто счетчик хранят в изменяемой переменной mut и меняют его внутри тела. Пусть нужно вывести числа от одного до пяти:

let mut i = 1; while i <= 5 { println!("{}", i); // выведет 1, 2, 3, 4 и 5 i += 1; }

Тот же счетчик можно уменьшать. Сделаем обратный отсчет от десяти до одного:

let mut i = 10; while i > 0 { println!("{}", i); // выведет 10, 9, 8 и далее до 1 i -= 1; }

Пусть задано число. Будем делить его на 2 столько раз, пока результат не станет меньше 10:

let mut num = 500; while num > 10 { num = num / 2; } println!("{}", num); // выведет 7

Когда начальное значение уже не проходит проверку, тело пропускается:

let mut count = 0; while count > 0 { println!("{}", count); count -= 1; } println!("skip"); // выведет skip

Дано число:

let mut n = 2;

Пока n больше нуля, выводите его и уменьшайте на 1. После круга выведите "zero".

Даны переменные:

let mut power = 1; let limit = 4;

Пока power меньше limit, выводите power и прибавляйте к нему 1.

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

let mut x = 5; while x < 5 { println!("{}", x); x += 1; }

Скажите, сколько раз напечатается число при запуске.

Выведите числа от 1 до 100.

Выведите числа от 11 до 33.

Выведите числа от 100 до 1.

Дано число num с начальным значением 2. Умножайте его на 3 столько раз, пока результат умножения не станет больше 1000. Какое число получится? Посчитайте количество итераций, нужных для этого.

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