Menu
Coddy logo textTech

If - Else anidados

Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 28 de 75.

Podemos anidar sentencias if-elif-else unas dentro de otras. Esto nos permite crear estructuras jerárquicas de toma de decisiones.

Por ejemplo:

if age > 18 {
    if hasLicense {
        println!("You can drive");
    } else {
        println!("Get a license first");
    }
} else {
    println!("Too young to drive");
}

Puede estar anidado infinitamente:

if condition1 {
	if condition2 {
		if condition3 {
		    // si condition1, condition2 y condition3 son verdaderas
		    ...
		}
	}
}
challenge icon

Desafío

Principiante

Crea un programa que verifique si alguien puede subir a una montaña rusa. Los requisitos son:

  • Debe tener al menos 12 años
  • Debe medir más de 150 cm
  • Si cumple ambos requisitos pero es menor de 15 años, necesita supervisión de un adulto

Imprime exactamente estos mensajes para cada caso:

  • Si es demasiado joven: Sorry, you're too young
  • Si no es lo suficientemente alto: Sorry, you're not tall enough
  • Si es menor de 15 y no hay un adulto: Sorry, you need an adult with you
  • Si es menor de 15 con un adulto: You can ride with adult supervision!
  • Si tiene 15 años o más y es lo suficientemente alto: You can ride by yourself!

Hoja de referencia

Puedes anidar sentencias if-elif-else unas dentro de otras para crear estructuras de toma de decisiones jerárquicas:

if age > 18 {
    if hasLicense {
        println!("You can drive");
    } else {
        println!("Get a license first");
    }
} else {
    println!("Too young to drive");
}

El anidamiento se puede realizar de forma infinita:

if condition1 {
    if condition2 {
        if condition3 {
            // si condition1, condition2 y condition3 son verdaderas
            ...
        }
    }
}

Pruébalo tú mismo

use std::io;

fn main() {
    let mut age_input = String::new();
    let mut height_input = String::new();
    let mut adult_input = String::new();
    
    io::stdin().read_line(&mut age_input).unwrap();
    io::stdin().read_line(&mut height_input).unwrap();
    io::stdin().read_line(&mut adult_input).unwrap();
    
    let age: i32 = age_input.trim().parse().unwrap();
    let height: i32 = height_input.trim().parse().unwrap();
    let has_adult: bool = adult_input.trim().parse().unwrap();

    // Escribe tu código debajo
    
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals