Rust - Toma de decisiones
Las estructuras de toma de decisiones requieren que el programador especifique una o más condiciones para ser evaluadas o probadas por el programa, junto con una declaración o declaraciones que se ejecutarán si se determina que la condición es verdadera y, opcionalmente, otras declaraciones que se ejecutarán si se determina que la condición es falsa.
A continuación se muestra la forma general de una estructura típica de toma de decisiones que se encuentra en la mayoría de los lenguajes de programación:
No Señor | Declaración y descripción |
---|---|
1 | if statement Una instrucción if consta de una expresión booleana seguida de una o más declaraciones. |
2 | if...else statement Una instrucción if puede ir seguida de una instrucción else opcional , que se ejecuta cuando la expresión booleana es falsa. |
3 | else...if and nested ifstatement Puede usar una instrucción if o else if dentro de otra instrucción if o else if . |
4 | match statement Una declaración de coincidencia permite comparar una variable con una lista de valores. |
Si declaración
La construcción if… else evalúa una condición antes de que se ejecute un bloque de código.
Sintaxis
if boolean_expression {
// statement(s) will execute if the boolean expression is true
}
Si la expresión booleana se evalúa como verdadera, entonces se ejecutará el bloque de código dentro de la instrucción if. Si la expresión booleana se evalúa como falsa, se ejecutará el primer conjunto de código después del final de la instrucción if (después de la llave de cierre).
fn main(){
let num:i32 = 5;
if num > 0 {
println!("number is positive") ;
}
}
El ejemplo anterior se imprimirá number is positive como la condición especificada por el bloque if es verdadera.
declaración if else
Un if puede ir seguido de un opcional elsebloquear. El bloque else se ejecutará si la expresión booleana probada por la instrucción if se evalúa como falsa.
Sintaxis
if boolean_expression {
// statement(s) will execute if the boolean expression is true
} else {
// statement(s) will execute if the boolean expression is false
}
FlowChart
los ifblock protege la expresión condicional. El bloque asociado con la instrucción if se ejecuta si la expresión booleana se evalúa como verdadera.
El bloque if puede ir seguido de una instrucción else opcional. El bloque de instrucciones asociado con el bloque else se ejecuta si la expresión se evalúa como falsa.
Ilustración - Simple if… else
fn main() {
let num = 12;
if num % 2==0 {
println!("Even");
} else {
println!("Odd");
}
}
El ejemplo anterior imprime si el valor de una variable es par o impar. El bloque if comprueba la divisibilidad del valor por 2 para determinar el mismo. Aquí está la salida del código anterior:
Even
Anidado si
los else…ifLadder es útil para probar múltiples condiciones. La sintaxis es la que se muestra a continuación:
Sintaxis
if boolean_expression1 {
//statements if the expression1 evaluates to true
} else if boolean_expression2 {
//statements if the expression2 evaluates to true
} else {
//statements if both expression1 and expression2 result to false
}
Al usar declaraciones if… else… if y else, hay algunos puntos a tener en cuenta.
- Un si puede tener cero o uno más y debe ir después de cualquier otro.
- Un si puede tener de cero a muchos más ... si y deben venir antes que los demás.
- Una vez que un else ... si tiene éxito, ninguno de los demás ... si o bien se probará.
Ejemplo: else ... if ladder
fn main() {
let num = 2 ;
if num > 0 {
println!("{} is positive",num);
} else if num < 0 {
println!("{} is negative",num);
} else {
println!("{} is neither positive nor negative",num) ;
}
}
El fragmento muestra si el valor es positivo, negativo o cero.
Salida
2 is positive
Declaración de coincidencia
La declaración de coincidencia verifica si un valor actual coincide con una lista de valores, esto es muy similar a la declaración de cambio en lenguaje C. En primer lugar, observe que la expresión que sigue a la palabra clave de concordancia no tiene que estar entre paréntesis.
La sintaxis se muestra a continuación.
let expressionResult = match variable_expression {
constant_expr1 => {
//statements;
},
constant_expr2 => {
//statements;
},
_ => {
//default
}
};
En el ejemplo que se da a continuación, state_code coincide con una lista de valores MH, KL, KA, GA- si se encuentra alguna coincidencia, un valor de cadena se devuelve al estado de variable . Si no se encuentra ninguna coincidencia, el caso predeterminado _ coincide y se devuelve el valor Unkown .
fn main(){
let state_code = "MH";
let state = match state_code {
"MH" => {println!("Found match for MH"); "Maharashtra"},
"KL" => "Kerala",
"KA" => "Karnadaka",
"GA" => "Goa",
_ => "Unknown"
};
println!("State name is {}",state);
}
Salida
Found match for MH
State name is Maharashtra