ESTRUCTURA
CONDICIONAL, SELECTIVA O ALTERNATIVA.
Las estructuras
condicionales controlan si una sentencia o bloque de sentencias se ejecutan, en
función del cumplimiento o no de una condición o expresión lógica.
C++ tiene dos estructuras
de control para la selección, if y switch.
2. 1 Instrucción IF
Esta instrucción hace que
se ejecuten unas sentencias u otras dependiendo del valor que toma una
condición.
La instrucción if puede
ser simple o doble:
Alternativa simple:
if (condicion)
instrucción1;
if (condicion)
{
instrucción 1;
instrucción 2;
instrucción 3;
}
Alternativa doble.
if (condicion)
instrucción1;
else
instrucción2;
if (condicion)
{
Instrucción 1;
instrucción 2;
}
else
{
instrucción 3;
instrucción 4;
}
Ejemplo de estructura condicional en C++. Programa
que lee un número entero por teclado y muestra si es par o impar.
#include
<iostream>
using
namespace std;
int
main(void)
{
int
num;
cout <<"Introduzca numero:";
cin
>> num;
if ((num%2)==0)
cout
<< "PAR" << endl;
else
cout
<< "IMPAR" << endl;
system("pause");
}
Las instrucciones if-else se pueden anidar
obteniéndose una estructura condicional múltiple:
if(condicion1)
instrucción1;
else
if(condicion2)
instrucción2;
else if(condicion3)
instrucción3;
else
if(condicion4)
instruccion4;
else
instrucción5;
instrucción 6;
instrucción 7;
......
En este caso se evalúa la condicion1;
si es cierta, se ejecuta la instrucción1 y se continúa por la instrucción
6 después del bloque de if-else anidados. Si la condición1 es falsa,
se evalúa la condicion2, y así sucesivamente.
En caso de no ser cierta
ninguna de las condiciones, la sentencia que se ejecuta es la del último else,
es decir, la instrucción 5.
Ejemplo de estructura condicional múltiple en C++.
Programa que lee un número entero que corresponde a una hora y muestra un
mensaje según la hora que se haya leído.
#include
<iostream>
using
namespace std;
int main(void)
{
int
hora;
cout << "\nIntroduzca una
hora (entre 0 y 24): ";
cin >> hora;
if ((hora >= 0) and (hora <
12))
cout
<< "\nBuenos dias\n";
else if ((hora >= 12) and (hora < 18))
cout << "\nBuenas
tardes\n";
else
if ((hora >= 18) and (hora < 24))
cout
<< "\nBuenas noches\n";
else
cout
<< "\nHora no válida\n";
system("pause");
}
Otro ejemplo de estructura
condicional múltiple en C++. Programa que lee la calificación numérica obtenida
por un alumno en un examen y muestra la nota equivalente en texto.
#include
<iostream>
using
namespace std;
int
main(void)
{
unsigned
int nota;
cout << "Introduzca una calificacion numerica entre 0 y
10:";
cin
>> nota;
cout
<< "La calificacion del alumno es" << endl;
if (nota == 10)
{
cout
<< "Matricula de Honor" << endl;
}
else
if (nota >= 9)
{
cout
<< "Sobresaliente" << endl;
}
else
if (nota >= 7)
{
cout
<< "Notable" << endl;
}
else
if (nota >= 5)
{
cout
<< "Aprobado" << endl;
}
else
{
cout
<< "Suspenso" << endl;
}
system("pause");
}
2.2 Instrucción switch
La sentencia switch selecciona
una de entre múltiples alternativas.
La forma general de esta
expresión es la siguiente:
switch
(expresión)
{
case
constante1:
instrucciones;
break;
case
constante 2:
instrucciones;
break;
·
· ·
default:
instrucciones;
}
En una instrucción
switch, expresión debe ser una expresión con un valor entero, y constante1,
constante2, ..., deben ser constantes enteras, constantes de tipo carácter o
una expresión constante de valor entero. Expresión también puede ser de tipo
char, ya que los caracteres individuales tienen valores enteros
Dentro de un case puede
aparecer una sola instrucción o un bloque de instrucciones.
La instrucción switch
evalúa la expresión entre paréntesis y compara su valor con las constantes de
cada case. Se ejecutarán las instrucciones de aquel case cuya constante
coincida con el valor de la expresión, y continúa hasta el final del bloque o
hasta una instrucción que transfiera el control fuera del bloque del switch
(una instrucción break, o return). Si no existe una constante igual al valor de
la expresión, entonces se ejecutan las sentencias que están a continuación de
default si existe (no es obligatorio que exista, y no tiene porqué ponerse
siempre al final).
Ejemplo de uso de la instrucción switch en C++. Programa
que lee dos números y una operación y realiza la operación entre esos números.
#include
<iostream>
using
namespace std;
int
main(void)
{
int
A,B, Resultado;
char
operador;
cout
<< "Introduzca un numero:";
cin
>> A;
cout
<< "Introduzca otro numero:";
cin
>> B;
cout
<<"Introduzca un operador (+,-,*,/):";
cin
>> operador;
Resultado
= 0;
switch
(operador)
{
case
'-' : Resultado = A - B;
break;
case
'+' : Resultado = A + B;
break;
case
'*' : Resultado = A * B;
break;
case '/' : Resultado = A / B; //suponemos B!=0
break;
default
: cout << "Operador no valido"<< endl;
}
cout
<< "El resultado es: ";
cout
<< Resultado << endl;
system("pause");
}
Otro ejemplo de uso de switch en C++.
Programa que determina si un carácter leído es o no una vocal. En ese caso como
la sentencia a ejecutar por todas las etiquetas case es
la misma, esta sentencia se pone una única vez al final:
#include
<iostream>
using
namespace std;
int main(void)
{
char
car;
cout << "Introduzca un
caracter: ";
cin >> car;
switch (car)
{
case
'a':
case
'A':
case
'e':
case
'E':
case
'i':
case
'I':
case
'o':
case
'O':
case
'u':
case
'U': cout << car << " es una vocal" << endl;
break;
default
: cout << car << " no es una vocal" << endl;
}
system("pause");
}