En este tema, aprenderemos sobre las estructuras de control de flujo en Rust, que nos permiten dirigir la ejecución de nuestro programa en función de condiciones y repeticiones. Las estructuras de control de flujo son fundamentales para escribir programas que puedan tomar decisiones y realizar tareas repetitivas.
Contenido
Condicionales: if, else if, else
Sintaxis Básica
La estructura condicional if se utiliza para ejecutar código basado en una condición booleana. La sintaxis básica es la siguiente:
fn main() {
let number = 5;
if number < 10 {
println!("El número es menor que 10");
} else if number == 10 {
println!("El número es igual a 10");
} else {
println!("El número es mayor que 10");
}
}Explicación
if: Evalúa una condición. Si es verdadera, ejecuta el bloque de código asociado.else if: Evalúa una nueva condición si la anterior fue falsa.else: Ejecuta el bloque de código si todas las condiciones anteriores fueron falsas.
Ejemplo Práctico
fn main() {
let temperature = 30;
if temperature > 30 {
println!("Hace calor");
} else if temperature < 10 {
println!("Hace frío");
} else {
println!("El clima es agradable");
}
}Bucles: loop, while, for
loop
El bucle loop ejecuta un bloque de código indefinidamente hasta que se encuentre una instrucción break.
fn main() {
let mut count = 0;
loop {
count += 1;
println!("Contando: {}", count);
if count == 5 {
break;
}
}
}while
El bucle while ejecuta un bloque de código mientras una condición sea verdadera.
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("¡Despegue!");
}for
El bucle for itera sobre una colección de elementos, como un rango o un array.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("El valor es: {}", element);
}
}Expresiones match
La expresión match permite comparar un valor contra una serie de patrones y ejecutar el código correspondiente al primer patrón que coincida.
Sintaxis Básica
fn main() {
let number = 3;
match number {
1 => println!("Uno"),
2 => println!("Dos"),
3 => println!("Tres"),
_ => println!("Otro número"),
}
}Explicación
- Patrones: Cada rama de
matchtiene un patrón y un bloque de código. _: Es un comodín que coincide con cualquier valor no cubierto por los patrones anteriores.
Ejemplo Práctico
fn main() {
let day = "Martes";
match day {
"Lunes" => println!("Inicio de la semana"),
"Martes" => println!("Segundo día de la semana"),
"Miércoles" => println!("Mitad de la semana"),
"Jueves" => println!("Casi fin de semana"),
"Viernes" => println!("Fin de la semana laboral"),
"Sábado" | "Domingo" => println!("Fin de semana"),
_ => println!("Día no válido"),
}
}Ejercicios Prácticos
Ejercicio 1: Condicionales
Escribe un programa que verifique si un número es positivo, negativo o cero.
fn main() {
let number = -5;
if number > 0 {
println!("El número es positivo");
} else if number < 0 {
println!("El número es negativo");
} else {
println!("El número es cero");
}
}Ejercicio 2: Bucles
Escribe un programa que imprima los números del 1 al 10 usando un bucle for.
Ejercicio 3: match
Escribe un programa que use match para imprimir el nombre del día de la semana basado en un número del 1 al 7.
fn main() {
let day_number = 4;
match day_number {
1 => println!("Lunes"),
2 => println!("Martes"),
3 => println!("Miércoles"),
4 => println!("Jueves"),
5 => println!("Viernes"),
6 => println!("Sábado"),
7 => println!("Domingo"),
_ => println!("Número de día no válido"),
}
}Resumen
En esta sección, hemos aprendido sobre las estructuras de control de flujo en Rust, incluyendo condicionales (if, else if, else), bucles (loop, while, for) y la expresión match. Estas herramientas son esenciales para escribir programas que puedan tomar decisiones y realizar tareas repetitivas de manera eficiente. Asegúrate de practicar estos conceptos con los ejercicios proporcionados para reforzar tu comprensión. ¡En el próximo módulo, exploraremos la propiedad y el préstamo en Rust!
Curso de Programación en Rust
Módulo 1: Introducción a Rust
- ¿Qué es Rust?
- Configuración del Entorno de Rust
- Programa "Hola, Mundo!"
- Sintaxis y Estructura Básica
