Bucle
Introducción
En el lenguaje Wave, se proporcionan bucles para poder ejecutar el código repetidamente. Los bucles se utilizan para ejecutar el código repetidamente mientras se cumple una determinada condición, o para repetirlo un número específico de veces.
Los bucles admitidos en Wave incluyen:
- 
while loop: repetición basada en condiciones
 - 
for loop: repetición basada en el número de veces
 
También se proporcionan las palabras clave break y continue, que permiten controlar el flujo durante la repetición. Esta sección explica cómo usar los bucles y las palabras clave de control de flujo.
while loop
El bucle while ejecuta repetidamente un bloque de código mientras la expresión condicional dada se evalúe como true.
La repetición finalizará cuando la condición sea false.
Estructura básica
La siguiente es la sintaxis básica de un bucle while:
while (condición) {
    // código a repetir
}
- 
La condición debe ser de tipo
bool. - 
El bloque de código debe estar entre
{}y puede contener una o más declaraciones. 
Ejemplo: Imprimir desde 0 hasta 4
var i :i32 = 0;
while (i < 5) {
    println("i es {}.", i);
    i = i + 1;
}
Este ejemplo se repite mientras i sea menor que 5, imprimiendo el valor en cada repetición y aumentando en 1 cada vez.
Bucle for
El bucle for se utiliza de manera útil cuando se conoce el número de repeticiones.
Se compone especificando el valor inicial, la condición de término y la expresión de incremento.
Estructura básica
for (var nombreVariable: tipo = valorInicial; condición; incremento) {
    // código a repetir
}
- 
nombreVariable: la variable utilizada para controlar la repetición
 - 
condición: se ejecuta mientras sea
true - 
incremento: cambia el valor de la variable de repetición
 
Ejemplo: Imprimir de 1 a 5
for (var i: i32 = 1; i <= 5; i = i + 1) {
    println("i = {}", i);
}
Bucle anidado
Se puede escribir otro bucle dentro de un bucle, lo que se llama bucle anidado. Son útiles, por ejemplo, al recorrer matrices bidimensionales o combinaciones.
Ejemplo: Bucle while doble
var i :i32 = 0;
while (i < 3) {
    var j :i32 = 0;
    while (j < 2) {
        println("i={}, j={}", i, j);
        j = j + 1;
    }
    i = i + 1;
}
Bucle break
El bucle break finaliza inmediatamente el bucle y sale.
Es útil cuando se desea detener la repetición al cumplir una condición.
Ejemplo: Finalización de la repetición en un valor específico
var i :i32 = 0;
while (true) {
    if (i == 5) {
        break;
    }
    println(i);
    i = i + 1;
}
Bucle continue
El bucle continue omite el resto de la repetición actual y comienza la siguiente repetición.
Se usa cuando solo se desea ejecutar parte del bloque de repetición bajo ciertas condiciones.
Ejemplo: Imprimir solo números pares
for (var i: i32 = 0; i <= 10; i = i + 1) {
    if (i % 2 == 1) {
        continue;
    }
    println(i);
}
Resumen
| Gramática | Descripción | 
|---|---|
| while | Repetición mientras la condición sea verdadera | 
| for | Ejecución de la repetición con valor inicial, condición y expresión de incremento | 
| break | Finalización inmediata del bucle | 
| continue | Saltar a la siguiente repetición | 
Los bucles de Wave están diseñados para manejar de manera flexible tanto las operaciones de repetición basadas en condiciones como en el número de veces.
La combinación de break y continue permite un control más sofisticado del flujo de repetición.