Difference between revisions of "Control de flujo de ejecución"
(→Lazos) |
|||
| Line 61: | Line 61: | ||
La única forma de que deje de imprimir "hola" es usando Control-C. | La única forma de que deje de imprimir "hola" es usando Control-C. | ||
==Saliendo de un lazo con <code>break</code>== | |||
Con <code>break</code> la iteración termina y se sale del lazo. | |||
<syntaxhighlight lang="rust" line='line' highlight="1"> | |||
fn main() { | |||
let mut a=0; | |||
loop { | |||
a=a+1; | |||
println!("{}",a); | |||
if a == 100 {break;} | |||
} | |||
} | |||
En este programa, al llegar la impresión a 100, terminará el programa. | |||
</syntaxhighlight> | |||
Revision as of 22:46, 17 February 2021
Las dos estructuras más importantes para el control del flujo de ejecución son los lazos y la expresión if:
Expresiones if/else
Muy similar a otros lenguajes, se evalúa si es falso o verdadero una expresión. En este caso se evalúa si una variable es menor a 10 o no:
fn main() {
let a = 5;
if a < 10 {
println!("la expresión es verdadera");
}else {
println!("la exprexión es false");
}
}
La expresión a evaluar debe ser de tipo bool, de lo contrario producirá un error 308.
El else es opcional, y se pueden colocar varias expresiones if/else en cascada:
fn main() {
let a = 5;
if a == 10 {
println!("la variable es 10");
}else if a == 4 {
println!("la variable es 4");
}else if a == 7 {
println!("la variable es 7");
}else {
println!("la variable no es ni 10, 4 ni 7");
}
}
Si debes poner muchos if/else en cascada, lo mejor sería usar un match.
Usando en let
Como el if es una expresión, se puede utilizar en el lado derecho de un let:
fn main() {
let a = 5;
let b = 7;
let c = if a>b {3} else {1};
println!("El valor es {}",c);
}
Al ejecutar este programa, la salida sería "1".
Lazos
El comando loop causa que un bloque de código se repita infinitas veces a menos de que explícitamente se le ordene que termine. Este código nunca terminará:
fn main() {
loop {
println!("hola");
}
}
La única forma de que deje de imprimir "hola" es usando Control-C.
Saliendo de un lazo con break
Con break la iteración termina y se sale del lazo.
fn main() {
let mut a=0;
loop {
a=a+1;
println!("{}",a);
if a == 100 {break;}
}
}
En este programa, al llegar la impresión a 100, terminará el programa.