Estructuras condicionales en C++: if, else if, switch
Aprende estructuras condicionales en C++ con if, else if y switch para controlar decisiones y flujo del programa.
En los programas de C++, las sentencias condicionales se utilizan para ejecutar diferentes bloques de código dependiendo de una condición.
Estas controlan el flujo del programa y forman el mecanismo de toma de decisiones.
En este artículo aprenderemos cómo funcionan las estructuras if, else if, else y switch mediante ejemplos.
1. Sentencia if
La sentencia if ejecuta el bloque de código que sigue si la condición dada es true (verdadera).
Si la condición es false (falsa), el bloque se omite.
#include <iostream>
using namespace std;
int main() {
int edad = 18;
if (edad >= 18) {
cout << "Eres mayor de edad." << endl;
}
return 0;
}
En este ejemplo, si edad >= 18 es verdadero, se mostrará “Eres mayor de edad.”.
Si la condición no se cumple (por ejemplo edad = 16), no se mostrará nada.
2. Estructura if – else
La estructura if – else se usa para realizar una acción cuando la condición es verdadera
y otra diferente cuando es falsa.
int edad = 16;
if (edad >= 18) {
cout << "Eres mayor de edad." << endl;
} else {
cout << "Aún no eres mayor de edad." << endl;
}
Aquí, cuando la condición es falsa, se ejecuta el segundo bloque (else).
3. Cadena if – else if – else
Para probar múltiples condiciones de forma secuencial, se puede usar una cadena else if.
El programa ejecuta el primer bloque cuya condición es verdadera y luego detiene la comprobación.
#include <iostream>
using namespace std;
int main() {
int nota = 75;
if (nota >= 90) {
cout << "Calificación: AA" << endl;
} else if (nota >= 80) {
cout << "Calificación: BA" << endl;
} else if (nota >= 70) {
cout << "Calificación: BB" << endl;
} else if (nota >= 60) {
cout << "Calificación: CC" << endl;
} else {
cout << "Has reprobado." << endl;
}
return 0;
}
En este ejemplo, como la nota es 75, se cumple la tercera condición y se imprime “Calificación: BB”.
4. Combinación de múltiples condiciones
En las sentencias if, se pueden combinar varias condiciones usando operadores lógicos:
int edad = 20;
bool tieneID = true;
if (edad >= 18 && tieneID) {
cout << "Acceso permitido." << endl;
} else {
cout << "Acceso denegado." << endl;
}
&&→ Se ejecuta si ambas condiciones son verdaderas.||→ Se ejecuta si al menos una condición es verdadera.!→ Niega la condición (invierte true/false).
5. Sentencia switch
La sentencia switch ejecuta diferentes bloques de código según el valor de una variable.
Es más legible que usar múltiples if – else cuando se trabaja con valores fijos o menús.
#include <iostream>
using namespace std;
int main() {
int dia = 3;
switch (dia) {
case 1:
cout << "Lunes" << endl;
break;
case 2:
cout << "Martes" << endl;
break;
case 3:
cout << "Miércoles" << endl;
break;
case 4:
cout << "Jueves" << endl;
break;
case 5:
cout << "Viernes" << endl;
break;
default:
cout << "Fin de semana!" << endl;
}
return 0;
}
En este ejemplo, como dia = 3, el programa ejecuta el bloque case 3
y muestra en pantalla “Miércoles”.
6. Uso de break y default
- break: Sale del bloque
switchdespués de ejecutar el caso correspondiente. Si se omite, el programa continúa ejecutando los casos siguientes. - default: Se ejecuta cuando ningún
casecoincide con el valor.
Ejemplo:
int opcion = 2;
switch (opcion) {
case 1:
cout << "Opción 1 seleccionada" << endl;
case 2:
cout << "Opción 2 seleccionada" << endl;
default:
cout << "Bloque por defecto" << endl;
}
Como no hay break, la salida será:
Opción 2 seleccionada
Bloque por defecto
Este comportamiento se conoce como fall-through.
Generalmente no es deseado, por lo que se recomienda usar break; al final de cada bloque case.
7. Uso de switch con caracteres o enumeraciones
La estructura switch solo puede utilizarse con tipos int, char o enum.
No se puede usar con double ni con string.
char op = '+';
switch (op) {
case '+':
cout << "Operación de suma" << endl;
break;
case '-':
cout << "Operación de resta" << endl;
break;
default:
cout << "Operación desconocida" << endl;
}
Aquí, como op es igual a '+', el programa imprime “Operación de suma”.
8. Ejemplo práctico: Calculadora simple
El siguiente ejemplo combina las estructuras if y switch para realizar operaciones según la entrada del usuario.
#include <iostream>
using namespace std;
int main() {
double a, b;
char op;
cout << "Ingrese el primer número: ";
cin >> a;
cout << "Ingrese el segundo número: ";
cin >> b;
cout << "Seleccione una operación (+, -, *, /): ";
cin >> op;
switch (op) {
case '+':
cout << "Resultado: " << a + b << endl;
break;
case '-':
cout << "Resultado: " << a - b << endl;
break;
case '*':
cout << "Resultado: " << a * b << endl;
break;
case '/':
if (b != 0)
cout << "Resultado: " << a / b << endl;
else
cout << "Error: ¡No se puede dividir entre cero!" << endl;
break;
default:
cout << "Operación inválida." << endl;
}
return 0;
}
Este programa solicita dos números y una operación, calcula el resultado y también verifica errores como la división por cero.
9. TL;DR
if→ Ejecuta el bloque si la condición es verdadera.else if→ Añade condiciones alternativas.else→ Se ejecuta si ninguna condición se cumple.switch→ Más claro para selecciones múltiples con valores fijos.break→ Sale del bloque switch.- Combina condiciones con
&&,||y!. - Todos los ejemplos pueden ejecutarse en Visual Studio 2022 o GCC 11+.