0Pricing
C++ Academy · Lección

Ramificaciones: if-else, ternario y switch-case

Elija entre cadenas if-else, expresiones ternarias y sentencias switch para crear ramificaciones claras.

Ramificaciones: if-else, ternario y switch-case es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 de 4. 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 C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

La instrucción if

La condicional básica. El cuerpo se ejecuta cuando la condición es verdadera. Las llaves son opcionales para una sola instrucción, pero siempre se recomiendan.

int score = 85;
if (score >= 60) {
    std::cout << "Pass\n";
}

Cadenas if-else

Pruebe alternativas con else if y un else final. Se ejecuta la primera rama verdadera.

if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";

Condiciones booleanas

Funciona cualquier expresión convertible a bool. Los punteros se evalúan como falsos cuando son nulos y los enteros, cuando valen cero. Sea explícito para mejorar la claridad.

Inicialización en if (C++17)

C++17 permite declarar una variable dentro de if. La variable queda limitada al ámbito del cuerpo de if-else.

if (auto it = map.find(key); it != map.end()) {
    std::cout << it->second;
}

El operador ternario

condition ? a : b devuelve uno de dos valores. Es excelente para decisiones sencillas, pero una mala opción para lógica anidada.

int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";

Ternarios anidados: evítelos

Los operadores ternarios anidados son difíciles de leer. En su lugar, utilice if-else o extraiga la lógica a una función auxiliar.

// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";

// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";

La instrucción switch

Compare un valor con varias constantes. Cada rama necesita break para evitar continuar con el siguiente case.

switch (day) {
    case 1: std::cout << "Mon"; break;
    case 2: std::cout << "Tue"; break;
    default: std::cout << "?";  break;
}

Fallthrough intencionado

Agrupe varios case que compartan código. C++17 añadió [[fallthrough]] como marcador para el compilador.

switch (c) {
    case 'a': case 'e': case 'i': case 'o': case 'u':
        std::cout << "vowel"; break;
    default:
        std::cout << "consonant";
}

Restricciones de switch

switch solo funciona con tipos enteros y enumerados. Para cadenas, utilice if-else o un mapa hash.

Inicializador en switch (C++17)

Al igual que en if, puede declarar una variable dentro de la cabecera de switch.

switch (auto value = compute(); value) {
    case 0: ...
    default: ...
}

Patrón: mapa de búsqueda

Para ramas cuyas claves son cadenas, un std::unordered_map puede ser más claro que una cadena de if-else.

std::unordered_map<std::string, std::function<void()>> commands = {
    {"start", []{ start(); }},
    {"stop",  []{ stop();  }}
};
if (auto it = commands.find(cmd); it != commands.end())
    it->second();

Comprobación rápida

¿Qué ocurre si un case de un switch no tiene break y el siguiente case no está vacío?

Resumen

Utilice if-else para ramificaciones generales, el operador ternario para elecciones breves de valores y switch al comparar un valor con muchas constantes enteras. Las instrucciones de inicialización de C++17 mejoran el control del ámbito.

Preguntas frecuentes

¿La lección «Ramificaciones: if-else, ternario y switch-case» es gratis?

Sí — el texto completo de «Ramificaciones: if-else, ternario y switch-case» 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 C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ramificaciones: if-else, ternario y switch-case»?

Elija entre cadenas if-else, expresiones ternarias y sentencias switch para crear ramificaciones claras. Practicas C++ Academy 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 C++ Academy?

No se requiere experiencia previa. C++ Academy 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 1 de 4.

¿Cuánto tiempo toma la lección «Ramificaciones: if-else, ternario y switch-case»?

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 C++ Academy?

Sí. Cada lección de C++ Academy 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

  1. Ramificaciones: if-else, ternario y switch-case
  2. Patrones de bucle: for, while y do-while
  3. Bucle for basado en rangos con contenedores
  4. Retornos anticipados, break, continue y goto
← Volver a C++ Academy