Цикл 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. Какое число получится? Посчитайте количество итераций,
нужных для этого.