Estructuras de seleccién
Dentro de las estructuras de seleccién encontramos dos modelos en el C++, las de condicién
simple (sentencias if else) y las de condicin mip (switch). A continuacin estuiareos
ambos tipos de sentencias.
La sentencia if
‘Se emplea para elegir en funcién de una condicién. Su sintaxis es:
Af (expresién)
sentencia 2
sentencia 2
Los paréntesis de la expresién a evaluar son obligatorios, lasentencia 1 puede ser una sola
instruecién (que no necesita ir entre Ilaves) o un bloque de instrucciones (entre llaves pero sin
punto y coma después de cerrar). El eise es opcional, cuando aparece determina las acciones a
tomar si la expresién es falsa,
El tinico problema que puede surgir con estas sentencias es el anidamiento de if y else: Cada
else se empareja con el if més cereano:
Af (expt)
Sf texpr2)
aceién 2
else 1/ este else corresponde al if de expr 2
‘accién 2
else 1/ este corresponde al if de exprt
Para diferenciar bien unas expresiones de otras (el anidamiento), es recomendable tabular
correctamente y hacer buen uso de las llaves:
af (expr)
af (ex@r2)
‘aceién 2
> 11 Notar que 1a Liave no Leva punto y coma desputs, si 1o pustérans
11 nabeianoe terninado la sentancla y'el else se quedaria suelto
else 11 Rate else corresponde al if de exprl
aecién 3
Por iiltimo indicaremos que cuando anidamos else - if se suele escribir:
if en
al
alse if (02)
else LF (03)
de esta manera evitamos el exceso de tabulacién.La sentencia switch
Esta sentencia nos permite seleccionar en funcién de condiciones miltiples. Su sintaxis es:
switch (expresién) (
‘case valor 1: sentencia 21;
Breaky
‘case valor 21 sentencia
sentencia 221
entancia 2m7
breaks
Gefauit: — sentencia
sentencia 42:
Sentencia dp
'
El paréntesis en la expresién es obligatorio. El funcionamiento es el siguiente, si al evaluar la
expresién se obtiene uno de los valores indicados por caso valor : se ejecutan todas las
sentencias que encontremos hasta llegar a un break (0 al cierre de las llaves). Si no se verifica
ningiin case pasamos a las sentencias cerauie, si existe (default es opcional) y si no existe no
hhacemos nada,
Indicaremos que si queremos hacer lo mismo para distintos valores podemos escribir los case
seguidos sin poner break en ninguno de ellos y se ejecutaré lo mismo para todos ellos.
Ejemplo:
void maint) (
seitcn (hy (
‘case Ot
feout <<" EL nimeco " << << * 08 par\nt,
break:
ceee 3
case St
case 7:
‘cout <¢ "El nimero "