AnteriorPosterior

3.9. switch

Por: Nacho Cabanes
Actualizado: 20-04-2019 09:31
Tiempo de lectura estimado: 3 min.

 

C++

3.9. switch

Si queremos ver varios posibles valores, sería muy pesado tener que hacerlo con muchos “if” seguidos o encadenados. La alternativa es la orden “switch”, cuya sintaxis es

switch (expresión)
{
   case valor1: sentencia1;
     break;
   case valor2: sentencia2;
     sentencia2b;
     break;
   ...
   case valorN: sentenciaN;
     break;
   default:
     otraSentencia;
}

Es decir, se escribe tras “switch” la expresión a analizar, entre paréntesis. Después, tras varias órdenes “case” se indica cada uno de los valores posibles. Los pasos (porque pueden ser varios) que se deben dar si se trata de ese valor se indican a continuación, terminando con “break”. Si hay que hacer algo en caso de que no se cumpla ninguna de las condiciones, se detalla tras “default”.

Vamos con un ejemplo:

// Introducción a C++, Nacho Cabanes
// Ejemplo 03.12:
// Condiciones con switch 
 
#include <iostream>
using namespace std;
 
int main()
{
  int numero;
 
  cout << "Introduce un numero del 1 al 10: ";
  cin >> numero;
  switch (numero)
  {
    case 1: cout << "Uno";
            break;
    case 2: cout << "Dos";
            break;
    case 3: cout << "Tres";
            break;
    case 4: cout << "Cuatro";
            break;
    case 5: cout << "Cinco";
            break;
    case 6: cout << "seis";
            break;
    case 7: cout << "Siete";
            break;
    case 8: cout << "Ocho";
            break;
    case 9: cout << "Nueve";
            break;
    case 10: cout << "Diez";
            break;
    default:  cout << "Valor incorrecto!";
  }
 
  return 0;
}

Si varios casos dan el mismo resultado, se pueden apilar en cascada, sin usar "break" entre uno y otro:

// Introducción a C++, Nacho Cabanes
// Ejemplo 03.13:
// Condiciones con switch (2): casos en cascada
 
#include <iostream>
using namespace std;
 
int main()
{
  int numero;
 
  cout << "Introduce un numero del 1 al 10: ";
  cin >> numero;
  switch (numero)
  {
    case 1: 
    case 3:
    case 5:
    case 7:
    case 9:
            cout << "Impar";
            break;
    case 2: 
    case 4:
    case 6:
    case 8:
    case 10:
            cout << "Par";
            break;
    default:  
            cout << "Valor incorrecto!";
  }
 
  return 0;
}

Ejercicios propuestos:

  • (3.9.1) Crea un programa que pida al usuario un número del 1 al 10 y diga si es múltiplo de 3 o no lo es.
  • (3.9.2) Crea una versión del ejemplo 3.12, empleando “if” en lugar de “switch”.
  • (3.9.3) Crea una versión del ejemplo 3.13, empleando “if” en lugar de “switch”.

13077 visitas desde el 20-04-2019

AnteriorPosterior