Nyx ofrece el conjunto estándar de construcciones de control de flujo: ramas condicionales con if/else if/else, bucles de contador con while, e iteración con for sobre rangos y colecciones. El control de bucles usa break y continue.
// Control de flujo: if/else, while, for con range, break y continue fn main() -> int { // if / else if / else let x: int = 7 if x > 10 { print("mayor que 10") } else if x > 5 { print("entre 5 y 10") } else { print("5 o menos") } // while que cuenta del 1 al 5 var i: int = 1 while i <= 5 { print("while: " + int_to_string(i)) i = i + 1 } // for con range (0..5 excluye el 5) for n in 0..5 { print("range: " + int_to_string(n)) } // for con array let colores: Array = ["rojo", "verde", "azul"] for c in colores { print("color: " + c) } // break y continue var k: int = 0 while k < 10 { k = k + 1 if k == 3 { continue } if k == 6 { break } print("k = " + int_to_string(k)) } return 0 }
entre 5 y 10 while: 1 while: 2 while: 3 while: 4 while: 5 range: 0 range: 1 range: 2 range: 3 range: 4 color: rojo color: verde color: azul k = 1 k = 2 k = 4 k = 5
Cómo funciona
La sentencia if evalúa una condición booleana sin paréntesis. Se pueden encadenar condiciones con else if y proveer un caso alternativo con else. Todos los cuerpos de las ramas deben ir entre llaves — no hay atajos de una sola línea.
El bucle while ejecuta su cuerpo mientras la condición sea verdadera. Como Nyx no tiene una forma incorporada for (int i = 0; i < n; i++), while cumple ese rol cuando se necesita un contador manual.
La forma for x in start..end itera sobre un rango semiabierto: 0..5 produce 0, 1, 2, 3, 4 (el 5 queda excluido). La forma for x in collection itera sobre cualquier array o valor iterable.
continue salta el resto de la iteración actual del bucle y pasa a la siguiente. break sale del bucle de inmediato. En el ejemplo, k = 3 se salta con continue, y el bucle se detiene cuando k llega a 6.