Sintaxis de la sentencia switch
switch (expresion) {
case literal_1:
// conjunto de instrucciones 1
break;
case literal_2:
// conjunto de instrucciones 2
break;
case literal_n:
// conjunto de instrucciones n
break;
default:
// conjunto de instrucciones por defecto
break;
}
Descripción
expresion: Es la variable o expresión que se va a evaluar.case literal: Representa un posible valor de la expresión. Si la expresión coincide con el valor literal, se ejecutan las instrucciones correspondientes.break: Finaliza el caso actual y sale del bloqueswitch. Si se omite, la ejecución continúa con el siguiente caso (esto se llama "fall-through").default: Opcional. Se ejecuta si ninguno de los casos coincide con la expresión. Es similar a unelseen una sentenciaif.
Comparación con if
A diferencia de la sentencia if, switch compara el valor de la variable con cada case. Si encuentra una coincidencia, ejecuta las instrucciones correspondientes hasta encontrar un break.
Programa final
A continuación, se presenta un programa que solicita al usuario que ingrese un número entre 1 y 5 y usa una sentencia switch para determinar qué número fue ingresado:
#include <iostream>
using namespace std;
int main() {
int numero;
cout << "Digite un numero entre 1-5: ";
cin >> numero;
switch (numero) {
case 1:
cout << "El numero es 1." << endl;
break;
case 2:
cout << "El numero es 2." << endl;
break;
case 3:
cout << "El numero es 3." << endl;
break;
case 4:
cout << "El numero es 4." << endl;
break;
case 5:
cout << "El numero es 5." << endl;
break;
default:
cout << "No esta en el rango 1-5" << endl;
}
return 0;
}
En este programa:
- Se declara una variable
numeropara almacenar el número ingresado por el usuario. - Se solicita al usuario que ingrese un número entre 1 y 5.
- Se utiliza una sentencia
switchpara verificar el valor denumero:- Si el valor de
numeroes 1, se imprime "El numero es 1." - Si el valor de
numeroes 2, se imprime "El numero es 2." - Si el valor de
numeroes 3, se imprime "El numero es 3." - Si el valor de
numeroes 4, se imprime "El numero es 4." - Si el valor de
numeroes 5, se imprime "El numero es 5."
- Si el valor de
- Si el valor ingresado no está en el rango de 1 a 5, se ejecuta la instrucción del bloque
defaulty se imprime "No está en el rango 1-5".