// DOCS NAVIGATION
while let_
SOURCE: content/docs/reference/04-avancado.md — 04 Avançado / 3. while let
PT-BR:
while let combina um padrão com um loop: continua executando enquanto o padrão corresponder. Quando o padrão não corresponder mais, o loop termina.
EN-US:
while let combines a pattern with a loop: it keeps executing as long as the pattern matches. When the pattern no longer matches, the loop terminates.
module while_let_demo
from std.io import println
func encontrar_positivo(n: int) returns Option<int> {
if n > 0 {
return Option::Some(n)
}
return Option::None
}
public func main() {
let contador = 5
while let Option::Some(n) = encontrar_positivo(contador) {
println(f"Valor positivo: {n}")
contador = contador - 1
}
// Imprime 5, 4, 3, 2, 1 e para quando contador == 0
// Processando itens de uma fila / Processing queue items
let itens = [10, 20, 30]
let idx = 0
while let Option::Some(item) = obter_item(itens, idx, 3) {
println(f"Processando: {item}")
idx = idx + 1
}
}
func obter_item(arr: [int], idx: int, tamanho: int) returns Option<int> {
if idx < tamanho {
return Option::Some(arr[idx])
}
return Option::None
}