Files
freeCodeCamp/guide/russian/rust/loops/index.md
2019-08-07 15:01:10 -07:00

3.1 KiB
Raw Blame History

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).