If / Else
Si queremos que algo se ejecute después del if, sin tener en cuenta la condición evaluada, basta con colocarlo fuera del bloque encerrado por las llaves. Y si queremos ejecutar un bloque de código sólo cuando la condición del if no se cumple - es decir cuando devuelve false - entonces es cuando tenemos que añadir un bloque else {} a continuación.
if (Expresión booleana){
el código contenido aquí se ejecuta sólo si la Expresión booleana devuelve true
} else {
el código contenido en este bloque se ejecuta si la Expresión booleana devuelve false
}
El flujo del programa con un if / else cubre los dos casos posibles:
- Si la expresión booleana se cumple ejecuta un bloque de código.
- Si no se cumple ejecuta el otro bloque.
|
Inicio del programa |
pub fn main() void { … |
|
|
const n_a = 2 + 1; if (n_a > 3) { print("n_a es mayor de 3", .{}); } else { print("n_a no es mayor de 3", .{}); }
… |
|
Final del programa |
} |
|
fig. if |
|
Después de esa bifurcación el camino del programa vuelve a unirse.
Vamos a ampliar el ejemplo anterior añadiendo un bloque else para mostrar un mensaje de ánimo en caso de que el jugador no haya conseguido batir el tiempo previo:
better_time_2.zig |
|
const std = @import("std"); const print = std.debug.print; pub fn main() void { const n_time_record = 10.0; const n_time = 11.0; if (n_time < n_time_record) { print("¡Felicidades! Con tu tiempo: {}, Has superado el récord anterior ({}).\n", .{ n_time, n_time_record }); } else { print("Sigue intentándolo. Tu tiempo: {}, es peor que el récord anterior ({}).\n", .{ n_time, n_time_record }); }
} |
|
$ zig run better_time_2.zig |
|
Sigue intentándolo. Tu tiempo: 11 es peor que el récord anterior (10). |
Seguro que aquí te preguntarás: ¿y si quiero ejecutar un bloque de código cuando la primera condición no se cumple, pero me interesa comprobar si se cumple una segunda condición?
