Estructuras de Seleccion

Anuncio
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
Descargar