3.1 KiB
title, localeTitle
title | localeTitle |
---|---|
Loops | Loops |
Loops
Rust поддерживает три типа циклов: loop
, while
и for
.
Бесконечное повторение с loop
В Rust конструкция loop
будет непрерывно выполнять блок кода до бесконечности (или пока вы явно не остановите его).
Вот пример программы, использующей loop
для непрерывного вывода слова «again!» на терминал:
fn main() {
loop {
println!("again!");
}
}
Условный цикл с while
Описанный выше механизм не очень полезен, если мы не добавим какое-то условие, по которому loop
будет останавливаться. К счастью, в Rust есть встроенная конструкция цикла while
. Её можно использовать для непрерывного выполнения блока до тех пор, пока какое-то условие истинно.
Вот пример программы, использующей while
для обратного отсчета от 5:
fn main() {
let mut number = 5;
while number != 0 {
println!("{}", number);
number = number - 1;
}
}
Запустите код здесь.
Перебор коллекции с for
В некоторых случаях вам может потребоваться пройтись по элементам коллекции (например, массива) и как-то обработать их. Это можно было бы сделать с помощью while
, используя индексную переменную для доступа к каждому элементу. Чтобы сделать эту операцию гораздо проще, Rust предлагает цикл for
.
Вот пример программы, которая печатает каждое число в массиве на терминал, используя for
:
fn main() {
let collection = [15, 7, 2, 6, 9];
for element in collection.iter() {
println!("the value is: {}", element);
}
}
Запустите код здесь.
Подобно итераторам в C++, .iter()
возвращает итератор коллекции collection
, который затем можно использовать в цикле для доступа к каждому элементу element
. Для получения дополнительной информации перейдите к документации Rust по порядку исполнения (control flow).