Funciones y flujo de control
Aprenda a definir funciones y a utilizar las expresiones `if`/`else`, `loop`, `while` y `for` para controlar el flujo de ejecución del programa.
Funciones y flujo de control es una lección gratuita de Learn Rust Coding en CoddyKit. Esta es la lección 3 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn Rust Coding, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn Rust Coding incluye 3 lecciones en total.
¿Qué son las funciones?
Las funciones son bloques de código con nombre que realizan una tarea específica. Son fundamentales para organizar el código y hacerlo reutilizable.
- Reutilización del código: escriba una parte de la lógica una vez y úsela varias veces.
- Modularidad: divida los problemas complejos en partes más pequeñas y manejables.
- Legibilidad: asigne nombres significativos a los bloques de código para facilitar su comprensión.
Su primera función de Rust
En Rust, se define una función mediante la palabra clave fn. La función main es el punto de entrada de todo programa de Rust.
Así se declara y se llama a una función sencilla:
fn say_hello() {
println!("Hello from a function!");
}
fn main() {
say_hello(); // Call the function
println!("Back in main.");
}Funciones con parámetros
Las funciones pueden aceptar valores de entrada llamados parámetros. Estos permiten que la función opere con datos diferentes cada vez que se la llama.
Los parámetros se definen con un nombre y un tipo, separados por dos puntos.
fn greet(name: &str) {
println!("Hello, {}!", name);
}
fn main() {
greet("Alice");
greet("Bob");
}Funciones con valores de retorno
Las funciones también pueden devolver un valor a quien las llama. El tipo de retorno se especifica después de una flecha (->).
La última expresión del cuerpo de la función se devuelve implícitamente. ¡No hace falta punto y coma en la expresión de retorno!
fn add_numbers(x: i32, y: i32) -> i32 {
x + y // No semicolon: this expression is returned
}
fn main() {
let sum = add_numbers(5, 7);
println!("The sum is: {}", sum);
}Toma de decisiones: `if`/`else`
La expresión if permite que el programa ejecute distintos bloques de código según una condición. Las condiciones siempre deben ser de tipo bool (true/false).
- Use
ifpara la primera condición. - Use
else ifpara condiciones adicionales. - Use
elsecomo alternativa cuando no se cumpla ninguna otra condición.
El if de Rust es una expresión, lo que significa que puede devolver un valor.
Expresiones if-else en acción
Así puede usar if y else para asignar un valor según una condición. Observe que se comporta como un operador ternario de otros lenguajes.
fn main() {
let number = 7;
let message = if number < 10 {
"Small number"
} else {
"Large number"
};
println!("The number is: {}", message);
let other_num = 15;
if other_num % 2 == 0 {
println!("{} is even", other_num);
} else {
println!("{} is odd", other_num);
}
}Repetición de código: `loop`
La palabra clave loop crea un bucle infinito. Resulta útil cuando necesita repetir una acción hasta decidir detenerla explícitamente.
Use break para salir del bucle. Incluso puede devolver un valor desde una expresión loop mediante break.
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Break and return a value
}
};
println!("The result is {}", result);
}Repetición condicional: `while`
El bucle while ejecuta un bloque de código mientras una condición especificada siga siendo verdadera. Es perfecto cuando no sabe exactamente cuántas veces debe repetirse el bucle.
fn main() {
let mut count = 3;
while count != 0 {
println!("{}!", count);
count -= 1;
}
println!("LIFTOFF!!!");
}Iteración con bucles `for`
El bucle for se usa para iterar sobre una colección de elementos o un rango de números. Es la construcción de bucle más común de Rust, por lo que permite escribir código seguro y conciso.
- Suele usarse con rangos (por ejemplo,
1..4para 1, 2, 3 o1..=4para 1, 2, 3, 4). - Funciona con cualquier tipo que implemente el trait
Iterator.
fn main() {
// Loop through a range
for number in 1..4 { // 1, 2, 3
println!("Number: {}", number);
}
// Loop through an array
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("The value is: {}", element);
}
}Desafío de flujo de control
Considere el siguiente código de Rust. ¿Cuál será el valor final de result?
fn calculate_value(input: i32) -> i32 {
if input > 10 {
input * 2
} else if input == 5 {
input + 5
} else {
input
}
}
fn main() {
let result = calculate_value(5);
// What is result?
}Repaso de funciones y flujo de control
¡Ha dominado los componentes básicos para crear programas dinámicos!
- Funciones: organice y reutilice el código mediante
fn, parámetros y valores de retorno. if/else: tome decisiones y ejecute código condicionalmente. ¡Recuerde que es una expresión!loop: cree bucles infinitos, salga conbreaky devuelva valores.while: repita el bucle mientras una condición sea verdadera.for: itere de forma segura sobre colecciones y rangos.
¡Estas herramientas son esenciales para escribir programas de Rust estructurados y eficientes!
Preguntas frecuentes
¿La lección «Funciones y flujo de control» es gratis?
Sí — el texto completo de «Funciones y flujo de control» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn Rust Coding, actualiza a CoddyKit PRO. El curso de Learn Rust Coding incluye 3 lecciones en total.
¿Qué aprenderé en «Funciones y flujo de control»?
Aprenda a definir funciones y a utilizar las expresiones `if`/`else`, `loop`, `while` y `for` para controlar el flujo de ejecución del programa. Practicas Learn Rust Coding con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn Rust Coding?
No se requiere experiencia previa. Learn Rust Coding en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 3.
¿Cuánto tiempo toma la lección «Funciones y flujo de control»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn Rust Coding?
Sí. Cada lección de Learn Rust Coding incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Variables, mutabilidad y sombreado
- Tipos de datos primitivos y operadores
- Funciones y flujo de control