Introducción a la Programación – Parte 6 – Estructuras de Selección Estructuras de Selección Selección o Condicional A veces, parte del código se ejecuta sólo dadas ciertas condiciones. Por ejemplo si tengo un programa que me dice si un número es positivo o negativo, primero deberá chequear si el número es mayor a cero o menor y en cada caso informará por pantalla el resultado. Para lograr esto podemos usar una estructura de control que permite ejecutar una parte del código u otra teniendo en cuenta una condición. Esta estructura es el if y else. Veamos como se resolvería el problema dado con un ejemplo: int numero; cout<<”Ingrese un numero”; cin>>numero; if(numero < 0) { cout<<“El número es negativo”; } else { cout<<“El número es positivo”; } Como verás, la condición se escribe entre paréntesis y puede ser una expresión relacional o predicado elemental como lo estudiamos en la parte 4 de los tutoriales de introducción, o también pueden ser expresiones lógicas o predicados compuestos como lo estudiamos en la parte 5. Otro punto importante sobre esta estructura de control es que la parte del else es opcional. Veamos un ejemplo: int numero1, numero2; cout<<“Ingrese el primer numero”; cin>>numero1; cout<<“Ingrese el segundo numero”; cin>>numero2; cout<<“La suma de los números es “<<numero1 + numero2; if(numero1 + numero2 > 10) { cout<<“La suma superó el número 10”; } Verás que hasta ahora hemos visto como hacer algo de entre dos opciones, pero ¿Qué pasa si tienes más opciones? Lo último sobre esta estructura es que puedes elegir entre tantas opciones como quieras poniendo más condiciones en la parte del else, utilizando else if. En este caso también, el último else es opcional y sería la opción por descarte, es decir, si ninguna de las condiciones es verdadera, se ejecuta la parte del else. Veamos un ejemplo donde dice el rango al que pertenece un número: Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP Mariano Luzza - Coordinador Introducción a la Programación – Parte 6 – Estructuras de Selección int numero; cout<<“Ingrese cin>>numero; if(numero < 0) { cout<<“El } else if(numero { cout<<“El } else if(numero { cout<<“El } else { cout<<“El } un numero”; número es menor a cero”; >= 0 && numero < 10) número está entre cero y diez”; >= 10 && numero <= 100) número está entre diez y cien”; número es mayor a cien”; Otra estructura de selección Además del if y else puedes utilizar el switch que reemplaza el uso de varios if else if. El switch evalúa una variable y ejecuta el código correspondiente al valor de esa variable. Además se puede agregar una etiqueta default para que se ejecute siempre que el valor de la variable no coincida con ninguna de las etiquetas declaradas. Este default es similar al último else. A pesar de ser un poco más cómodo de usar, tiene el contra de que no se pueden poner condiciones o rangos en las etiquetas, sólo valores constantes. Otra cosa para aclarar antes de ver el ejemplo, es que se pueden agrupar etiquetas para que se ejecute el mismo código. Veamos ahora si un ejemplo práctico. Supongamos que se nos pide un programa para determinar el sueldo de una persona basándose en su categoría. Para la categoría 1 el sueldo es de 800$, la categoría 2 es 1000$, la 3 es 1450$ y la 4 y 5 es 2000$. El resto de las categorías son inválidas. int categoria; cout<<“Ingrese su categoría”; cin>>categoria; switch(categoria) { case 1: cout<<“El sueldo es 800$”; break; case 2: cout<<“El sueldo es 1000$”; break; case 3: cout<<“El sueldo es 1450$”; break; Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP Mariano Luzza - Coordinador Introducción a la Programación – Parte 6 – Estructuras de Selección case 4: case 5: cout<<“El sueldo es 2000$”; break; default: cout<<“Categoría inválida”; break; } La opción default no es obligatoria de poner siempre que uses switch. Y las etiquetas case llevarán el valor que creas necesario y no sólo pueden ser enteros, también pueden ser caracteres. No olvides poner el break en cada caso o el código tendrá otro comportamiento, si quieres prueba quitarlo y verás que sucede. Si quisiéramos hacer el ejemplo anterior pero con if y else sería así: int categoria; cout<<“Ingrese su categoría”; cin>>categoria; if(categoria == 1) { cout<<“El sueldo es 800$”; } else if(categoria == 2) { cout<<“El sueldo es 1000$”; } else if(categoria == 3) { cout<<“El sueldo es 1450$”; } else if(categoria == 4 || categoria == 5) { cout<<“El sueldo es 2000$”; } else { cout<<“Categoría inválida”; } Resumen Hemos visto como armar estructuras de control if y else y también switch. Ambas estructuras permiten que se ejecute solamente una parte del código evaluando una condición o valor. Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP Mariano Luzza - Coordinador