Curso de C++

Aprende C++ de una buena vez

gratis
texto

Recomendado para ti

Condicional switch en C++. Declaración uso y sintaxis de switch en C++

¿Qué es Condicional Switch?

Los condicionales Switch, son una estructura de control condicional, que permite definir múltiples casos que puede llegar a cumplir una variable cualquiera, y qué acción tomar en cualquiera de estas situaciones, incluso es posible determinar qué acción llevar a cabo en caso de no cumplir ninguna de las condiciones dadas.

¿Cómo funciona el Switch?

La mejor forma de entender el funcionamiento de algo, es viendo un ejemplo de esto, de este modo, me parece que para comprender de forma adecuada como funciona un condicional Switch, es bueno hacerlo poniendo un ejemplo. Imaginemos entonces que nuestro programa consta de un menú de opciones digamos 3 opciones, cada una representada con un número correspondiente, es decir la opción uno corresponde al número 1, la dos al 2 y así sucesivamente, queremos entonces que de acuerdo a un número ingresado por el usuario ejecutemos una acción correspondiente y en caso de que no corresponda a ninguna de las posibles opciones, mostrar un mensaje de error cualquiera. De este modo, podemos identificar 3 casos distintos para nuestro switch o en otras palabras, hemos identificado tres condiciones posibles que puede llegar a cumplir nuestra variable: el caso uno corresponde a que el valor ingresado por el usuario sea el 1, es decir ejecutar la opción 1, el caso 2 el número 2, etc. adicionalmente hemos encontrado la opción que se ejecutará por defecto en caso de no suceder ninguno de estos casos, es decir si el usuario ingresa por ejemplo 10, mostraremos un mensaje de error cualquiera.

Espero que haya sido un tanto claro con esto, si no es así, recuerda que puedes preguntar en la sección de comentarios y con gusto te voy a responder o incluso modificar esta sección para responder tu cuestión, de igual forma, vamos a ver ya mismo unos ejemplos para entender mucho mejor de lo que he estado hablando.

Sintaxis del Condicional Switch en C++:

La sintaxis de un condicional Switch es bastante distinta a la de un condicional típico, sin embargo es bastante intuitiva y fácil de comprender, es solo cuestión de acostumbrarse. Veamos a continuación la estructura general de un condicional Switch y luego unos cuantos ejemplos.

switch(opción) //donde opción es la variable a comparar { case valor1: //Bloque de instrucciones 1; break; case valor2: //Bloque de instrucciones 2; break; case valor3: //Bloque de instrucciones 3; break; //Nótese que valor 1 2 y 3 son los valores que puede tomar la opción //la instrucción break es necesaria, para no ejecutar todos los casos. default: //Bloque de instrucciones por defecto; //default, es el bloque que se ejecuta en caso de que no se de ningún caso }

Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

Aquí, tenemos la declaración del condicional switch, estamos diciendo que lo que viene a continuación es esto, entre los paréntesis, el switch recibe la variable que vamos a usar para comparar en cada uno de los casos.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como hemos visto en secciones anteriores, indica que allí comienzan los bloques de instrucciones que se ejecutarán para cada caso.

Línea 3:

En esta línea tenemos una parte vital del condicional switch, aquí tenemos definido un caso posible que puede cumplir nuestra variable, la sintaxis es simple, usamos la instrucción "case" para indicar que allí comienza un caso, luego indicamos el valor que puede tomar la variable, puede ser un numero, una cadena de caracteres o lo que necesitemos, de esto se siguen dos puntos ":" y después de estos ponemos la o las instrucciones a ejecutar para este caso, como ejemplo, podríamos tener algo como esto : case "Hola": cout << "Usted ha escrito Hola";.

Línea 4:

Esta línea contiene la instrucción break, es una instrucción simple, pero fundamental al interior del condicional Switch, esta instrucción indica que hasta allí va el bloque de instrucciones del caso inmediatamente anterior a este, de este modo evitamos que el algoritmo ejecute los demás casos, a modo de ejercicio, podrías intentar ejecutar el código del ejemplo que veremos más adelante y quitar las instrucciones break, con esto podrás comprobar que si el usuario ingresa por ejemplo un 1, se ejecutarán todos los casos, es por esto que el break es fundamental.

Línea 5 a 8

Estas líneas contienen una repetición de las instrucciones de las líneas 3 y 4, evidentemente cada una contiene un caso distinto, ten en cuenta que se pueden definir todos los casos que sean necesarios al interior del switch.

Líneas 9, 10 y 12

Estas líneas como deberías saber ya, contienen diferentes comentarios aclarativos sobre el código, en caso de que no comprendas adecuadamente estas líneas, te recomiendo visitar la sección de comentarios.

Línea 11

Esta línea cambia un poco con respecto a las anteriores, sin embargo conserva la misma esencia, en vez de poner el comando "case", usamos el comando "default", y luego los 2 puntos ":", notemos que no se pone ningún valor a evaluar, pues esta es la acción que se ejecuta en caso de que no lleguemos a entrar en ninguno de los casos.

Línea 13:

En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la ejecución de este para continuar ejecutando el resto del programa.

No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que con un par de ejemplos que veremos a continuación, te va a quedar todo claro

Ejemplos de Condicional Switch en C++

A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada el uso de los condicionales Switch en C++, recuerda que si no comprendes alguno de estos ejemplos o tienes alguna pregunta o sugerencia sobre estos o cualquier contenido de la sección, puedes dejarlas en la sección de comentarios

Ejemplo 1: Menú de opciones en C++

Vamos a retomar el ejemplo mencionado anteriormente al inicio de la sección, en el cual suponíamos que el usuario nos ingresaba un número correspondiente a una opción cualquiera y de acuerdo a esto mostramos un mensaje y en caso de ingresar una opción incorrecta, mostramos un mensaje de error.

Solución Ejemplo 1:

Primero, determinemos los casos a ejecutar, tenemos tres casos posibles (suponiendo que nuestro menú está compuesto por 3 opciones) el caso 1 para la opción 1, el dos para la 2 y así sucesivamente. Nuestro caso por defecto (default) sería el caso de error, que sucede cuando no se ingresa alguna de las 3 opciones. Veamos entonces como hacer esto:

cout << "Ingrese la Opción a ejecutar: "; int opcion = 0; cin >> opcion; switch(opcion) { case 1: cout << "Usted ha seleccionado la opción 1"; break; case 2: cout << "Usted ha seleccionado la opción 2"; break; case 3: cout << "Usted ha seleccionado la opción 3"; break; default: cout << "Usted ha ingresado una opción incorrecta"; }

El código funcional completo sería el siguiente:

# include "iostream" using namespace std; void main() { cout << "Ingrese la Opción a ejecutar: "; int opcion = 0; cin >> opcion; switch(opcion) { case 1: cout << "Usted ha seleccionado la opción 1"; break; case 2: cout << "Usted ha seleccionado la opción 2"; break; case 3: cout << "Usted ha seleccionado la opción 3"; break; default: cout << "Usted ha ingresado una opción incorrecta"; } system("PAUSE"); }

Nota: Si no comprendes alguna de las líneas de estos códigos, te recomiendo visitar los contenidos anteriores (Entrada y Salida de Datos, Librerías ó Comentarios, Estructura de un Programa) o también puedes dejar un comentario al final de la sección con tu pregunta.

Efectivamente, los condicionales switch de hecho todos los condicionales en sí, son extremadamente útiles pues permiten definirle a nuestro software múltiples vías de ejecución contemplando así todas las posibilidades durante la ejecución. Me gustaría hacer una leve aclaración, el condicional switch encuentra su utilidad al momento de tener más de una posibilidad de valores para una variable cualquiera, evidentemente si nuestra variable solo puede adquirir un valor útil para nosotros, nuestra alternativa inmediata debería ser un if o un if-else, no un switch que resulta un poco mas engorroso de escribir, sin embargo cuando tenemos varias posibilidades es mejor un switch que tener condicionales anidados o un condicional después de otro. Espero que todo te haya quedado claro en esta sección.

Muy bien de momento, es todo en esta sección, podemos entonces continuar ahora con el siguiente contenido que son los Ciclos en C++, recuerda también dejar tus comentarios y/o preguntas en la sección de comentarios.

La última actualización de este artículo fue hace 8 meses

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

Lo que dicen los estudiantes

Buenas explicaciones y temario interesante.

Leonardo Quimpos

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Genial el ambiente que genera la pagina. Simple, rápido, fácil y al alcance de cualquiera.¡Sigan así cracks!

Fran Garassi

Visitante del sitio ProgramarYa.com

Estoy muy contento por haber terminado este curso. Estoy aplicando lo aprendido a mis proyectos y quedo totalmente satisfecho. Un curso 100% recomendable.

Jesus Romero

Estudiante del curso "VPS Seguro con DigitalOcean, Nginx, Letsencrypt Ubuntu 14.04"

Muy bien explicado. Contenido muy actualizado.

Santiago Zuluaga

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muchas gracias me has ayudado a quitar mis dudas de qué es For While, if y switch. Esto me ayudara también a mi tarea.

Len Garcia

Visitante del sitio ProgramarYa.com

Me parece muy bueno, el punto de la historia me gusto mucho, ya que a veces aprendemos algo y no sabemos sus origenes. FELICITACIONES hermano...

Anthony Castillo

Visitante de ProgramarYa

Estuve un semestre sin programar y me siento bastante perdida. Espero que este curso me ayude a ponerme de nuevo al corriente.

Fernanda Sanchez

Visitante del sitio ProgramarYa.com

Muy buen programador, dominas la POO como en ninguno otro curso, el uso de traits en el proyecto es una delicia.

Sergio Larracoechea

Estudiante del curso "APIs RESTful con Laravel"

Muy detallado y claras las explicaciones. Muchas gracias!

Sr. Erick Evencio

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Demoramos mucho para llegar al desarrollo. Aunque la maquina virtual es necesaria son muchos videos. De ahí en fuera está muy bien

Benjamin Ortiz

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

¡De lo mejor! Saludos desde México, está super bien todo, claro y preciso. Lo mejor es que se usen ejemplos. ¡Mejor que algunos profesores que me han tocado!

Rodrigo Enciso

Visitante de PrograarYa.com

Habiendo visto el 100% del curso puedo decir que es muy bueno de acuerdo a lo propuesto, cumple con las expectativas.

Holmans Correa

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Buena didáctica y redacción, espero más contenidos en los siguientes capítulos.

Juan Razo Ruiz

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Muy buena presentación pedagógica, pues nos quita el miedo a la programación. Yo entiendo que ésta tiene como objetivo facilitar el manejo de procesos que serían, demasiado complejos.

Jairo Ibarbo

Visitante del sitio ProgramarYa.com

Wuau, entendí más en una hora leyendo esto que en todo el semestre con la maestra de informática.

Valeria Sybelle

Visitante del sitio ProgramarYa.com

El curso es bueno, pero siempre explica demasiado rápido

E-Contact

Estudiante del curso " Aprende Laravel: Crea un Gestor de Fotos con Laravel y PHP"

Hice muchos ejercicios y aquí logré comprender lo que realmente estaba haciendo. Llegó un momento en que dejó de gustarme la programación, pero con estos textos, recuperé la motivación. Buen trabajo.

Demetrio Cumplido

Visitante del sitio ProgramarYa.com

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

¡Ups! {{subscriberErrorMessage}}

Si te parece bien, te enviaré, de vez en cuando, mensajes de interés sobre los temas que se tratan en sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encontrabas.

Además, puedes eliminar tu suscripción en cualquier momento.