Entendido.

Este sitio utiliza cookies para analizar la navegación.Si continúa navegando se entiende que acepta su uso. Ver más detalles.

Logo

Aprende Web C++

Aprende a programar en C++ con Aprende-Web

Nociones Básicas

programación en C++ desde cero.


Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net



Sobre ésta página

Ültima modificación: 13-07-2018.

Visitas este mes: 1

Visitas el mes pasado:

logo
WEB-GRAFÍA

Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:

cplusplus.com
Sitio oficial de C++: Informacion, Referencias, Tutorial, Foro. (En inglés)
Minidosis.org
Curso de C++ con videos y lecturas.
conclase.net
Curso de C++
programar ya
Curso de C++ desde cero
cprogramming.com
C++ Tutorial (inglés).
Entorno de desarrollo integrado
fergarciac.wordpress.com
Compiladores, intérpretes y Máquinas virtuales.
latecladeescape.com
el hacker.net
Programación
Desarrollo web
Manual de iniciación a la programación.

En los distintos manuales incluimosm más webgrafía especifica de cada sección.


Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.





4. Estructuras de Control

4.3. Condicional switch

Concepto

Logo C++ Basico

En páginas anteriores hemos visto la estructura if y else if para elegir lo que el programa debe hacer. Cada una de las opciones viene controlada por una condición. si se cumple la condición se ejecuta la opción, y si no se pasa a comprobar la siguiente.

La escructura switch tiene también la misma función, pero aquí, todas las opciones dependen del valor de una variable.

Tenemos una variable, y cada opción consiste en comparar esa variable con otro elemento, de manera que si el valor de la variable y el del elemento comparado son iguales, el resultado es verdadero, la condición se cumple, y se ejecuta el código asociado. Si no es así se pasa a la siguiente opción donde se vuelve a repetir el proceso. Si no se ejecuta ninguna opción puede ponerse una opción por defecto al final.


Código fuente

El código de esta estructura es el siguiente:

switch (x) { case a: <sentencias para x == a>; break; case b: <sentencias para x == b>; break; .................... case n: <sentencias para x == n>; break; default: <sentencias para x == n>; }

Vamos a explicar este código y ver cómo está estructurado:

Observa que podemos poner tantas opciones case .... break; como queramos. El case a: indica que iniciamos una nueva opción, la cual ejecutará el código que le sigue en el caso de que la variable principal (x) sea igual a la indicada a.

El break; hace que el flujo interrumpa, y salgamos del bloque. De no ponerlo el programa no sale del bloque y el resto del código del bloque, perteneciente a otras opciones, también se ejecutaría.

La última opción default: indica lo que se debe hacer cuando no hay ningún elemento anterior que coincida. Aunque no es obligatorio ponerla, es conveniente si queremos que el programa haga algo cuando no se cumplen las opciones anteriores. Al ser la última no es necesario poner el break; al final, ya que es ahí donde acabamos el bloque.


Ejemplo de Switch

En la página anterior hemos hecho un ejemplo en el que pedimos al usuario dos números, y después elige una operación, para después hacer esa operación con los dos números. Esto lo hemos hecho con la estructura else if .

Aquí vamos a hacer el mismo ejemplo, pero usando la estructura switch.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#include<iostream>
using namespace std;

int main() {
    cout << "OPERACIONES CON DOS NUMEROS" << endl;
    int a, b; char op; //Decalramos las variables
    cout << "Escribe un numero : ";cin >> a; //pedimos el primer número
    cout << "Escribe otro numero : "; cin >> b; //pedimos el segundo número
    cout << "Tus numeros son " << a << " y " << b << endl; //confirmamos números
    cout << "Elige una operacion, para ello escribe su letra: " << endl; //explicación al usuario
    cout << "s = Suma; r = Resta; m = Multiplicacion; d = Division." << endl;
    cout << "Tu operacion : "; cin >> op; //pedimos operacion
    switch (op){ //inicio estructura.
       case 's': //opción 1: suma
          cout << "Operacion : Suma " << endl;
          cout << a << " + " << b << " = " << a+b << endl;
          break;
       case 'r':  //opcion 2: resta
          cout << "Operacion : Resta " << endl;
          cout << a << " - " << b << " = " << a-b << endl;
          break;
       case 'm':  //opcion 3: multiplicacion
          cout << "Operacion : Multiplicacion " << endl;
          cout << a << " * " << b << " = " << a*b << endl;
          break;
       case 'd':  //opcion 4 : división
          cout << "Operacion : Division " << endl;
          cout << a << " / " << b << " = " << a/b << endl;
          break;
       default:  //Respuesta para opción equivocada.
          cout << "La letra escrita no se corresponde con ninguna operacion." << endl;
    }
}
ejemplo switch1

Compilamos y ejecutamos el archivo, y comprobamos que funciona igual que el de la página anterior. Sin embargo la estructura que hemos usado es distinta.

Es preferible utilizar la estructura switch siempre que se pueda, ya que simplifica el código y es más rápida (emplea menos memoria).

En realidad el ejemplo no es exctamente igual, ya que en el de la página anterior funcionaba también con letras mayúsculas, y en este no. Sin embargo esto lo podemos solucionar facilmente.


Mejorar el ejemplo anterior

Si ponemos varias instrucciones case <dato>: seguidas para la misma opción, conseguimos que esa opción se cumpla con cualquiera de los datos indicados en las opciones, por ejemplo, para la opción suma en el código anterior pondremos:

case 's': case 'S' : case '+': cout << "Operacion : Suma " << endl; cout << a << " + " << b << " = " << a+b << endl; break;</p>

Con esto conseguimos que la opción "suma" se active no sólo al pulsar la letra 's' (minuscula), sino también al pulsar la 'S' mayúscula, o al pulsar la tecla "+".

Cambiamos el código fuente anterior para ampliar las letras que activan todas las operaciones. El código ahora será el siguiente:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#include<iostream>
using namespace std;

int main() {
    cout << "OPERACIONES CON DOS NUMEROS" << endl;
    int a, b; char op; //Decalramos las variables
    cout << "Escribe un numero : ";cin >> a; //pedimos el primer número
    cout << "Escribe otro numero : "; cin >> b; //pedimos el segundo número
    cout << "Tus numeros son " << a << " y " << b << endl; //confirmamos números
    cout << "Elige una operacion, para ello escribe su letra: " << endl; //explicación al usuario
    cout << "S, + = Suma; R, - = Resta; M, * = Multiplicacion; D, / = Division." << endl;
    cout << "Tu operacion : "; cin >> op; //pedimos operacion
    switch (op){ //inicio estructura.
       case 's': case 'S' : case  '+': //opción 1: suma
          cout << "Operacion : Suma " << endl;
          cout << a << " + " << b << " = " << a+b << endl;
          break;
       case 'r': case 'R': case '-':  //opcion 2: resta
          cout << "Operacion : Resta " << endl;
          cout << a << " - " << b << " = " << a-b << endl;
          break;
       case 'm': case 'M': case '*': //opcion 3: multiplicacion
          cout << "Operacion : Multiplicacion " << endl;
          cout << a << " * " << b << " = " << a*b << endl;
          break;
       case 'd': case 'D': case '/':  //opcion 4 : división
          cout << "Operacion : Division " << endl;
          cout << a << " / " << b << " = " << a/b << endl;
          break;
       default:  //Respuesta para opción equivocada.
          cout << "La letra escrita no se corresponde con ninguna operacion." << endl;
    }
}
ejemplo switch1

Lo único que hemos cambiado respecto al código anterior es que hemos añadido más instrucciones "case" en cada opción, de manera que éstas puedan ejecutarse con cualquiera de ellas.

Es importante que tanto las instrucciones case como la instrucción default acaben siempre con dos puntos, ya que de otro modo la estructura switch no funcionará, y dará error de compilación.






En la siguiente página empezamos con otro tipo de estructuras, los bucles.

El bucle while



Manual Básico de C++

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com