Upload
luis
View
243
Download
0
Embed Size (px)
Citation preview
8/18/2019 6 Sentencias if Else Switch
1/26
7mo. LaboratorioCátedra: Programación I
Ing. Javier Sanchez M.
8/18/2019 6 Sentencias if Else Switch
2/26
Estructuras de Seleccion: Sentencias if y switch
Estructuras de Control
Las estructuras de control controlan el flujo de ejecucion de unprograma
Una sentencia compuesta es un conjunto de sentencias encerradas
entre llaves ({ y } ) que se utiliza para especificar un flujo secuencial.
{ sentencia 1; sentencia ; sentencia !; . . . "entencia n;
}
8/18/2019 6 Sentencias if Else Switch
3/26
La "entencia if #
$n %&&' la estructura de control de seleccion principal es una sentenciaif. La sentencia if tiene dos alternativas o formatos posiles#
f ($*presion) +ccion+ccion se ejecuta si la e*presion logica es verdadera
$*presion logica que determina "i la accion se ,a de ejecutar
%uando se alcanza la sentencia if dentro de un programa' se evalua lae*presion entre parentesis que viene a continuacion de if. "i e*presion esverdadera' se ejecuta +ccion' en caso contrario no se ejecuta +ccion
Expresion
Accion
8/18/2019 6 Sentencias if Else Switch
4/26
Ejemplo #1
void main(){
nt n' d;cout -- ntroduzca dos enteros/;cin 00 n 00 d;f (nd 22 3) cout -- n -- es divisile por/ -- d --
endl;}
$jecucion
ntroduzca dos enteros# !4 5
!4 es divisile por 5
$ste programa lee dos numeros enteros y compruea cual es el valor delresto de la division n entre d (nd). "i el resto es cero' n es divisile pord. ($n nuestro caso !4 es divisile por 5' ya que !4 # 5 2 6 y el resto es3.)
8/18/2019 6 Sentencias if Else Switch
5/26
Ejemplo #2:
7include-iostream.,0
void main(){
float numero;cout -- ntroduzca un numero positivo o negativo#/;
cin 00 numero;if (numero 0 3)
cout -- numero -- es mayor que cero/ -- endl;}
Ejecucion
ntroduzca un numero positivo o negativo# 13.1813.18 es mayor que cero
8/18/2019 6 Sentencias if Else Switch
6/26
Sentencia if de dos alternativas: if-else
Un segundo formato de la sentencia if es la sentencia if9else#
if ($*presion) +ccion1 else +ccion
$*presion logica:ue determinaLa accion aejecutar
+ccion se$jecuta si la
$*presion logica$s verdadera
+ccion que seealiza si la e*presionLogica es falsa
8/18/2019 6 Sentencias if Else Switch
7/26
Ejemplo #3:
if (salario 02 133333)salario
8/18/2019 6 Sentencias if Else Switch
8/26
Ejemplo #:
void main(){
nt n' d;cout -- ntroduzca dos enteros/;cin 00 n 00 d;f (nd 22 3) cout -- n -- es divisile por/ -- d -- endl;
elsecout -- n -- no es divisile por/ -- d -- endl;
}
!! Ejecucion:
ntroduzca dos enteros !4 8!4 no es divisile por 8
%omentario# !4 no es divisile por 8' ya que !4 dividido entre 8 produceun resto de 1 (nd 2 2 3' es falsa' y se ejecuta la clausula else).
8/18/2019 6 Sentencias if Else Switch
9/26
Sentencia if-else anidadas
%on las sentencias if9else anidadas podemos implementar decisiones queimpliquen diferentes alternativas.
Una sentencia if es anidada cuando la sentencia de la rama verdadera ola rama falsa es a su vez una sentencia if.
"inta*is#
if (condicion1)sentencia1
else if (condicion)sentencia
.
.
.else if (condicion=)
sentencia=else
sentencia e
8/18/2019 6 Sentencias if Else Switch
10/26
Ejemplo #":
if (* 0 3)num
8/18/2019 6 Sentencias if Else Switch
11/26
Sanria en las sentencias if anidadas:
$l formato multiifurcacion se compone de una serie de sentencias ifanidadas' que se pueden escriir en cada linea una sentencia if. Lasinta*is multiifurcacion anidada es#
$ormato 1:
if (e*presion
8/18/2019 6 Sentencias if Else Switch
12/26
$ormato 2:
if (e*presion
8/18/2019 6 Sentencias if Else Switch
13/26
Ejempo !7:
7include-iostream.,0
void main(){
cout -- ntroduzca un numero positivo o negativo# /;cin 00 numero;
if (numero 0 3)
{ cout -- numero -- es mayor que cero/ -- endl;cout -- pruee de nuevo' introduzca un numero negativo/ -- endl;
}else if (numero - 3){
cout -- numero -- es menor que cero/ -- endl;
cout -- pruee de nuevo' introduzca un numero negativo/ -- endl;}else{
cout -- numero -- es igual a cero/ -- endl;cout -- >or que no introduce un numero negativo?/ -- endl;
}
8/18/2019 6 Sentencias if Else Switch
14/26
Comparacion de "entencia" if anidada" # "ec$encia "e "entecia" if:
Los programadores tienen dos alternativas: (1) usar una secuencia de sentencias if; (2) una
unica sentencia if anidada. Por ejemplo la sentencia if del ejemplo !." se puede reescri#ircomo la siguiente secuencia de sentencias if.
f (* 0 3)num
8/18/2019 6 Sentencias if Else Switch
15/26
Ejemplo ):
if (a 0 3)if ( 0 3) &&a;else
if (c 0 3)
f (a - 8) &&else
if ( - 8) &&c;else 99a
elseif (c - 8) 99;else 99c;
else
a 2 3;
8/18/2019 6 Sentencias if Else Switch
16/26
Ejemplo 1*:
if (a 0 3)if ( 0 3) &&a;else if (c 0 3)
f (a - 8) &&else if ( - 8) &&c;else 99a
$lse if (c - 8) 99;
else 99c;else
a 2 3;
8/18/2019 6 Sentencias if Else Switch
17/26
Ejemplo #1*: (%alcular el mayor de tres numeros enteros.)
void main(){
int a' ' c' mayor;cout --/introduzca tres enteros#/;
cin 00 a 00 00 c;if (a 0 )
if (a 0 c) mayor 2 a;else mayor 2 c;
elseif ( 0 c) mayor 2 ;else mayor 2 c;
cout --/$l mayor es/ -- mayor -- endl;
8/18/2019 6 Sentencias if Else Switch
18/26
La sentencia s$itc% es una sentencia &'' ue se utilia para seleccionar una de
entre multiples alternativas. La sentencia s$tic% es especialmente util cuando la
seleccion se #ase en el valor de una varia#le simple o de una expresion simpledenominada expresion de control o selector el valor de esta expresion puede ser
de tipo int o c%ar pero no de tipo dou#le *intaxis:
*$itc% (selector)
+
case etiueta1: sentencias1;#rea,;
case etiueta2: sentencias2;
#rea,;
.
case etiueta-: sentencias-;
#rea,;default: sentenciasd; opcional
La e*presion de control o selector se evalua y se compara con cada una de las etiquetas decase. La e*presion selector deer ser un tipo ordinal (por ejemplo' int' c,ar' ool' pero nofloat o string). %ada etiqueta es un valor unico' constante y cada etiqueta dee tener un valordiferente de los otros
Sentencia de contro "%itch:
8/18/2019 6 Sentencias if Else Switch
19/26
s$itc% (opcion)
+ case /:
cout 00 &ero3 00 endl;
#rea,;
case 1:
cout 00 4no3 00 endl;
#rea,;
case 2:
cout 00 5os3 00 endl;
#rea,;
default:
cout 00 6uera de rango3 00 endl;
7
Ejempo !&&:
8/18/2019 6 Sentencias if Else Switch
20/26
s$itc% (opcion)
+ case /:
case 1:
case 2:
cout 00 8enor de 93 00 endl;
#rea,;
case 9:
cout 00 gual a 93;
#rea,;
default:
cout 00 8aor ue 93;
7
Ejempo !&':
8/18/2019 6 Sentencias if Else Switch
21/26
&omparacion de sentencias if
8/18/2019 6 Sentencias if Else Switch
22/26
So$cion con "%itch
*$itc% (car) +
case >a> : case >A>:
case >e> : case >E>:
case >i> : case >>:case >o> : case >@>:
case >u> : case >4>:
cout 00 car 00 no es una vocal3 00 endl;
rea,;default
cout 00 car 00 no es una vocal3 00 endl;
7
Ejempo !&*: Contin$acion
8/18/2019 6 Sentencias if Else Switch
23/26
Binclude0iostream.%C
int main()
+
c%ar nota;
cout 00 introduca la calificacion (AA>: cout 00 Excelente examen superadon3;#rea,;
case >>: cout 00 -ota#le suficiencian3;
#rea,;
case >&>: cout 00 Apro#adon3;
#rea,;
case >5>:
case >6>: cout 00 *upendidon3;rea,;
5efault:
&out 00 -o es posi#le esta nota3;
7
cout 00 6inal del programa3 00 endl;
return /;7
Ejempo !&+: Programa de ilustracion de la sentencia s
8/18/2019 6 Sentencias if Else Switch
24/26
nt tipoFve%iculo;
cout 00 introduca tipo de ve%iculo:3;
cin CC tipoFve%iculo peaje;
s$itc% (tipoFve%iculo)
+
case 1:
cout 00 Gurismo3;
peaje = H//;#rea,;
case 2:
cout 00 auto#us3;
peaje = 9///;
#rea,;
case 9:cout 00 8otocicleta3;
peaje = 9//;
#rea,;
5efault:
cout 00 Ie%iculo no autoriado3;
7
Ejempo !&,
8/18/2019 6 Sentencias if Else Switch
25/26
Esta permitido tener varias expresiones case en una
alternativa dada dentro de la sentencia s$itc%. Por ejemplo
se puede escri#ir:
s$itc%(c) +
case >/> : case >1> : case >2> : case >9> : case >!> :
case >H> : case >"> : case >J> : case >K> : case >> :numFdigitos'';
rea,;
&ase >> : case >t> : case >n> :
numF#lancos''rea,;
5efault;
numFdistintos'';
7
Ejempo !&-: &aso particular case
8/18/2019 6 Sentencias if Else Switch
26/26
nvestigar
so de sentencias s$itc% en menus
xpresiones condicionales: El operador M:valuacion en cortocircuito de expresiones logicas.
uesta a punto de programas.
rrores frecuentes de programacion
esumen de capitulo ! ejercicios.
ota: 5ic%os temas de#en ser anexados al presente document