English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Além das estruturas de controle condicional flexíveis, o Rust também tem um design maduro para estruturas de loop. Isso deve ser perceptível para desenvolvedores experientes.
O loop while é o tipo mais típico de loop de语句 condicional:
fn main() { let mut number = 1; while number != 4 println!("{}", number); number += 1; } println!("SAIR"); }
Resultado da Execução:
1 2 3 SAIR
A linguagem Rust ainda não tem 'do' até a data de elaboração deste tutorial.-Uso do while, mas 'do' é um palavra reservada, talvez versões futuras a utilizem.
No linguagem C, o loop for usa a expressão ternária para controlar o loop, mas no Rust não há essa utilização, é necessário usar o loop while para substituir:
int i; for (i = 0; i < 10; i++) { // corpo do loop }
let mut i = 0; while i < 10 // corpo do loop i += 1; }
O loop for é a estrutura de loop mais comum, frequentemente usada para percorrer uma estrutura de dados linear (por exemplo, um array). O loop for percorre o array:
fn main() { 10 2 3 4 5 for i in a.iter() { println!("O valor é : {}", i); } }
Resultado da Execução:
O valor é : 10 O valor é : 20 O valor é : 30 O valor é : 40 O valor é : 50
fn main() { 10 2 3 4 5 5 println!("a[{}] = {} } }
Resultado da Execução:
a[0] = 10 a[1] = 20 a[2] = 30 a[3] = 40 a[4] = 50
Desenvolvedores experientes certamente já encontraram várias vezes uma situação em que um loop não pode determinar se deve continuar no início e no final, mas deve controlar o loop no meio. Se encontrar essa situação, frequentemente implementamos a operação de saída do loop no corpo do while (true).
O idioma Rust tem uma estrutura de loop infinito nativa - loop:
fn main() { let s = ['R', 'U', 'N', 'O', 'O', 'B']; let mut i = 0; loop { let ch = s[i]; if ch == 'O' { break; } println!("'{}'", ch); i += 1; } }
Resultado da Execução:
'R' 'U' 'N'
O loop pode ser usado para sair do loop inteiro com a palavra-chave break, semelhante ao return. Este é um design muito inteligente, pois o loop é frequentemente usado como ferramenta de busca, e se encontrar algo, claro, deve entregar o resultado:
fn main() { let s = ['R', 'U', 'N', 'O', 'O', 'B']; let mut i = 0; let location = loop { let ch = s[i]; if ch == 'O' { break i; } i += 1; }; println!("O índice de 'O' é {}", location); }
Resultado da Execução:
O índice de 'O' é 3