Difference between revisions of "Control de flujo de ejecución"

From El Mago del Rust
Jump to navigation Jump to search
Line 1: Line 1:
Las dos estructuras más importantes para el control del flujo de ejecución son los lazos y la expresión <code>if</code>:
Las dos estructuras más importantes para el control del flujo de ejecución son los lazos y la expresión <code>if</code>:


=Expresiones <code>if</code>=
=Expresiones <code>if/else</code>=
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:
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:


Line 34: Line 34:


Si debes poner muchos <code>if/else</code> en cascada, lo mejor sería usar un [[match]].
Si debes poner muchos <code>if/else</code> en cascada, lo mejor sería usar un [[match]].
==Usando en <code>let</code>==
Como el <code>if</code> es una expresión, se puede utilizar en el lado derecho de un <code>let</code>:
<syntaxhighlight lang="rust" line='line' highlight="1">
fn main() {
    let a = 5;
    let b = 7;
    let c = if a>b {3} else {1};
    println!("El valor es {}",c);
}
</syntaxhighlight>

Revision as of 23:12, 15 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);
 }