# Bucles

Actualmente Rust provee tres manera de realizar actividades iterativas o bucles: loop, while y for. Cada uno de dichos enfoques tiene sus propios usos.

Loop: El ciclo infinito loop es el ciclo mas simple disponible en Rust. Rust proporciona una forma de iterar indefinidamente hasta que alguna sentencia de terminaci贸n sea alcanzada.

loop {
    println!("Itera por siempre!");
}

TIP

Se puede etiquetar el blucle loop con la siguiente sintaxis: label: loop y as铆 poder romper con la particula brake; el bucle que deseemos.

While: normalemente while es la elecci贸n correcta de bucle si no estamos seguros de cuantas veces necesitamos iterar. Como con if, seguido de la particula while escribiremos una expresion a evaluar de manera booleana (true o false).

while !completado {
    x += x - 3;

    println!("{}", x);

    if x % 5 == 0 {
        completado = true;
    }
}

TIP

  • += (variable += expresi贸n) es una sumas y asignaciones aritm茅ticas
  • % (expresi贸n % expresi贸n) devuelve el resto aritmetico.

De necesitar un ciclo infinito, podr铆as sentirte tentado a escribir algo como esto:

while true {
}

Sin embargo, loop es por lejos, el mejor para este caso.

For: El blucle o ciclo for es usado para iterar un n煤mero particular de veces. Nota: en Rust los for son algo diferentes a otros lenguajes

for x in 0..10 {
    println!("{}", x); // x: i32
}

Si te percataste, en terminos abstractos la sintaxis de for seria as铆:

for var in expresion {
    c贸digo
}

En este caso la expresi贸n (en el ejemplo: 0..10) es el iterador. El iterador devuelve una serie de elementos. Donde cada elemento es una iteraci贸n del bucle. Ese valor, fruto de la iteraci贸n, es a su vez asignado al el nombre de var., el cual se puede utilizar dentro del cuerpo del bucle. Una vez que el ciclo termina, el siguiente valor es obtenido del iterador, y se itera una vez m谩s. Cuando no hay mas valores en el iterador, el ciclo for termina.

TIP

  • 0..10 es una expresi贸n que toma una posici贸n de inicio y una de fin, y devuelve un iterador para esos valores. 隆Cuidado! no iterar谩 con el 10 solo hasta el 9.

Nota: En pr贸ximas lecciones de Rust sobre bucles o ciclos hablaremos de Enumerate, Iteradores, break, continue y etiquetas para los loops

Resumen

  • loop: bucle infinito.
  • while: no conocemos el numero de iteraciones.
  • for: itera un n煤mero particular de veces.