If
Como ya has visto en el primer ejemplo, la palabra clave If delante de una expresión booleana, nos permite detectar si se cumple una condición.
if (Expresión booleana){
el código contenido aquí se ejecuta solo si la Expresión booleana devuelve true
}
El flujo del programa con un if puede tomar un camino alternativo. Fíjate en la palabra “puede” porque no es obligatorio. Si la condición no se cumple, el programa continuará sin entrar en ese bloque.
|
Inicio del programa |
pub fn main() void { … const n_a = 2 + 1; if (n_a > 2) { print("n_a es mayor de 2", .{}); }
…} |
|
|
|
|
Final del programa |
fig. flujo lineal
Vamos a usar If otra vez, a diferencia del ejemplo anterior, aquí menos es mejor que más: imaginemos que un récord de velocidad fue superado por el jugador. Solo en ese caso mostramos una felicitación.
better_time.zig |
|
const std = @import("std"); const print = std.debug.print; pub fn main() void { const n_time_record = 10.0; const n_time = 9.8; if (n_time < n_time_record) { print("¡Felicidades! Con tu tiempo: {}, Has superado el récord anterior ({}).\n", .{ n_time, n_time_record }); }
} |
|
$ zig run better_time.zig |
|
¡Felicidades! Con tu tiempo: 9.8 Has superado el récord anterior (10). |
Aquí la condición es:
|
n_time < n_time_record |
Si la condición se cumple - es decir si el segundo tiempo es más bajo que el primero - el programa ejecuta el bloque de código entre las llaves { }. Si no se cumple no mostramos nada.
…pero ¿qué sucede si queremos ejecutar un bloque de código sólo cuando la condición no se cumple?
