SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Tema 8. Estructuras de
control: Selecci´on
Introducci´on a la Inform´atica y a la Programaci´on (IIP)
Curso 2011/2012
Departamento de Sistemas Inform´aticos y Computaci´on
´Indice
1 Introducci´on y motivaci´on 3
2 Revisi´on de condicionales 5
3 Instrucciones condicionales 7
• Instrucci´on if-else
• Instrucci´on switch
4 El operador ternario condicional 18
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.2
Introducci´on y motivaci´on
Hasta ahora hemos considerado el c´odigo simplemente como una secuencia
de instrucciones.
Sin embargo, la mayor parte de los problemas reales necesitan tomar deci-
siones seg´un la situaci´on, y con ello elegir entre distintas subsecuencias de
instrucciones.
Las estructuras de control permiten cambiar el flujo simple de instrucciones
para conseguir estas caracter´ısticas.
En un m´etodo, las decisiones se toman generalmente en funci´on de los datos
de entrada. La secuencia de instrucciones puede cambiar dependiendo de los
datos de entrada o los datos intermedios generados durante la ejecuci´on.
En este tema presentaremos los mecanismos que ofrece el lenguaje Java para
tomar decisiones.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.3
Introducci´on y motivaci´on
Las instrucciones condicionales pueden ser sencillas o anidadas:
if (temp>100)
System.out.println("Temperatura mayor que 100");
else System.out.println("Temperatura menor o igual que 100");
//.....
if (temp>100)
System.out.println("Mayor que 100");
else if (temp>50)
System.out.println("Mayor que 50, menor o igual que 100");
else System.out.println("Menor o igual que 50");
System.out.println("Continuamos aqui");
. . ...
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.4
Revisi´on de condicionales
La mayor´ıa de las estructuras de decisi´on dependen de expresiones l´ogicas
(boolean).
Las expresiones l´ogicas se construyen a partir de expresiones num´ericas
empleando operadores relacionales y a partir de otras expresiones l´ogicas
usando operadores l´ogicos.
Una expresi´on l´ogica es toda aquella expresi´on que se eval´ua a cierto
(true) o falso (false).
Operadores condicionales
Operador Operaci´on
== Igual a
!= Diferente a
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
Operadores l´ogicos
Operador Operaci´on
! NOT
& AND
| OR
^ XOR
&& AND cortocircuitado
|| OR cortocircuitado
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.5
Revisi´on de condicionales
Tabla de verdad
x y x && y x || y x ^ y !x
x & y x | y
false false false false false true
false true false true true true
true false false true true false
true true true true false false
if ((temp>=15) && (temp<=20)) .....
if ((temp>15) || (temp==15)) .....
// similar a (temp>=15)
if ((temp>=0) ^ (temp<=100)) .....
// similar a (temp>100) || (temp<0)
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.6
Instrucci´on condicional: if
El condicional m´as simple de Java presenta
esta estructura:
if (B) S
B es una condici´on.
S es cualquier instrucci´on o bloque de ins-
trucciones.
Ejecuci´on:
1. Se eval´ua B.
2. Si B es cierto, se ejecuta S.
3. Se contin´ua con la instrucci´on que sigue al
condicional.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.7
Instrucci´on condicional: if
Ejemplo: clase Circulo, m´etodo setRadio:
/** actualiza radio del Circulo a nuevoRadio
solo si nuevoRadio es positivo o cero. */
public void setRadio(double nuevoRadio) {
if (nuevoRadio >= 0)
radio = nuevoRadio;
}
Ejemplo: datos m´edicos, seg´un el sexo, se pregunta si la persona est´a embarazada
Humano h = new Humano();
// ...
System.out.print("Que edad tiene? ");
// ...
if (h.getSexo()==’M’) {
System.out.print("Esta embarazada? ");
// ...
}
System.out.print("Es alergico a algun medicamento? ");
// ...
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.8
Instrucci´on condicional: if-else
Su forma general es:
if (B) S1 else S2
B es una condici´on.
S1 y S2 son cualquier instrucci´on o conjunto
de instrucciones.
Ejecuci´on:
1. Se eval´ua B.
2. Si B es cierto, se ejecuta S1.
3. Si B es falso, se ejecuta S2.
4. Se contin´ua con la instrucci´on que sigue al
condicional.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.9
Instrucci´on condicional: if-else
Ejemplo: seg´un la temperatura, en-
cender o apagar el aire acondiciona-
do:
Habitacion h = new Habitacion();
AireAcon a = new AireAcon();
// ...
if (h.getTemp()>26.0)
a.encender();
else
a.apagar();
// ...
Ejemplo: seg´un la intensidad solar, re-
gular la intensidad de las luces:
DetectorSolar d = new DetectorSolar();
Bombilla b1 = new Bombilla();
Bombilla b2 = new Bombilla();
// ...
if (d.getIntensidad()<100) {
b1.incrIntens();
b2.incrIntens();
}
else {
b1.decrIntens();
b2.decrIntens();
}
// ...
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.10
Instrucci´on condicional: if-else
En cualquiera de las formas de las instrucciones condicionales if ...else ...,
los bloques de instrucciones pueden incluir otras instrucciones condicionales:
instrucciones condicionales anidadas.
Ejemplos:
if (B1)
if (B2) S1;
else S2;
if (B1)
if (B2) S1;
else S2;
if (B1)
if (B2) S1;
else S2;
else
if (B3) S3;
else S4;
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.11
Instrucci´on condicional: if-else
Ejemplo: gestor de multas de tr´afico:
// ...
if (vehic.getVel()>carr.getMaxVel()) {
System.out.println("Velocidad maxima sobrepasada");
if (vehic.getVel()>1.2*carr.getMaxVel())
vehic.crearMultaEspecial();
else
vehic.crearMultaNormal();
}
else {
if (vehic.getVel()<carr.getMinVel())
vehic.crearMultaNormal();
}
// ...
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.12
Instrucci´on condicional: if-else
Una instrucci´on if-else se di-
ce m´ultiple cuando cada uno de
los else tiene asociado un nuevo
if-else (excepto el ´ultimo).
if (B1) S1
else if (B2) S2
else if (B3) S3
...
else if (Bn) Sn
else Sn+1
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.13
Instrucci´on condicional: if-else
Ejemplo completo de uso de condicionales: validar una fecha (m´etodo validar)
public class Fecha {
int dd, mm, aa; // Dia, mes, anyo
// ...
public boolean bisiesto() { return ((aa%4)==0 && (aa%100)!=0) || (aa%400)==0; }
public boolean validar() {
int numdd=31; // Numero de dias del mes
if ((mm<=0) || (mm>12)) return false; // Examina rango del mes
// Determinar rango de dias
if ((mm==4) || (mm==6) || (mm==9) || (mm==11)) numdd=30;
else if (mm==2)
if (bisiesto()) numdd=29; else numdd=28;
if ((dd<=0) || (dd>numdd)) return false; // Examina rango del dia
return true;
}
// ...
}
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.14
Instrucci´on condicional: switch
switch (expresion) {
case val1: [SC1] [break;]
case val2: [SC2] [break;]
...
...
case valn: [SCn] [break;]
[default: [SCn+1] [break;]]
}
expresion debe evaluarse a un tipo primitivo (excepto float o double) o
a String (desde la versi´on 7.0 de Java).
val1, val2, . . . , valn son valores cuyo tipo de datos es compatible con el
de expresion.
SC1, SC2, . . . , SCn+1 son cualquier secuencia de instrucciones.
Los componentes que aparecen entre corchetes ([]) son opcionales.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.15
Instrucci´on condicional: switch
Ejecuci´on:
1. Se eval´ua expresion.
2. Se compara su valor con todos los
valores en los case.
3. Cuando es igual a alguno de ellos,
ejecutar las instrucciones desde ese
punto incluyendo el c´odigo asocia-
do a otras etiquetas case hasta:
que se encuentre un break, o
que se finaliza el bloque switch,
4. Si no es igual a ning´un valor, se
ejecutan las instrucciones asociadas
a la etiqueta default (si las hay)
hasta el fin del bloque switch.
5. Se contin´ua con la instrucci´on que
sigue al bloque switch.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.16
Instrucci´on condicional: switch
Un ejemplo completo: escribir el nombre del mes a partir de su n´umero:
public class Fecha {
int dd, mm, aa; // Dia, mes, anyo
// ...
public String nomMes() {
String mn;
switch(mm) {
case 1: mn=new String("Enero"); break;
case 2: mn=new String("Febrero"); break;
case 3: mn=new String("Marzo"); break;
case 4: mn=new String("Abril"); break;
// ...
case 12: mn=new String("Diciembre"); break;
default: mn=new String("Desconocido");
}
return mn;
}
// ...
}
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.17
El operador ternario o condicional
Java, al igual que C y C++, posee un operador ternario con un comportamiento
semejante a una instrucci´on condicional.
boolexpr ? expr1 : expr2
donde boolexpr es una expresi´on l´ogica y expr1 y expr2 son expresiones
cualquiera, pero del mismo tipo de datos.
Ejecuci´on:
1. Se eval´ua boolexpr.
2. Si boolexpr es cierta (true), la expresi´on completa se eval´ua a expr1.
3. En otro caso (boolexpr es falsa), la expresi´on completa se eval´ua a expr2.
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.18
El operador ternario o condicional
Ejemplo: validaci´on de fecha usando operador ternario
public class Fecha {
int dd, mm, aa; // Dia, mes, anyo
// ...
public boolean bisiesto() { return ((aa%4)==0 && (aa%100)!=0) || (aa%400)==0; }
public boolean validar() {
int numdd=31; // Numero de dias del mes
if ((mm<=0) || (mm>12)) return false; // Examina rango de mes
// Determinar rango de dia
if ((mm==4) || (mm==6) || (mm==9) || (mm==11)) numdd=30;
else if (mm==2) numdd=(bisiesto())?29:28; // Aqui se usa el operador ternario
if ((dd<=0) || (dd>numdd)) return false; // Examina rango de dia
return true;
}
// ...
}
22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.19

Weitere ähnliche Inhalte

Was ist angesagt?

Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosDiroplan
 
Arreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionalesArreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionalesMarco Garay
 
Derive 5(funciones de varias variables)
Derive 5(funciones de varias variables)Derive 5(funciones de varias variables)
Derive 5(funciones de varias variables)jalidf
 
Método simplex
Método simplexMétodo simplex
Método simplexdeweey
 
Mas ejercicios para la resolución de modelos aplicando el método simplex
Mas ejercicios para la resolución de modelos aplicando el método simplexMas ejercicios para la resolución de modelos aplicando el método simplex
Mas ejercicios para la resolución de modelos aplicando el método simplexLuis Guerrero
 
Tema 12.2
Tema 12.2Tema 12.2
Tema 12.2AlmuPe
 
Modulo 3: Las Preferencias y la Utilidad (Parte 2)
Modulo 3: Las Preferencias y la Utilidad (Parte 2)Modulo 3: Las Preferencias y la Utilidad (Parte 2)
Modulo 3: Las Preferencias y la Utilidad (Parte 2)Horacio Santander
 
Metodo simplex maxgallagher
Metodo simplex maxgallagherMetodo simplex maxgallagher
Metodo simplex maxgallagherIvan Ruiz
 
Maximos y minimos funcion de varias variables
Maximos y minimos funcion de varias variablesMaximos y minimos funcion de varias variables
Maximos y minimos funcion de varias variablesRAQUEL CARDENAS GONZALEZ
 

Was ist angesagt? (20)

Método simplex
Método simplexMétodo simplex
Método simplex
 
Clase11 Método Mle y momentos
Clase11 Método Mle y momentosClase11 Método Mle y momentos
Clase11 Método Mle y momentos
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
Arreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionalesArreglo unidimensionales y bidimensionales
Arreglo unidimensionales y bidimensionales
 
Matematica final3
Matematica final3Matematica final3
Matematica final3
 
Derive 5(funciones de varias variables)
Derive 5(funciones de varias variables)Derive 5(funciones de varias variables)
Derive 5(funciones de varias variables)
 
Método simplex
Método simplexMétodo simplex
Método simplex
 
Mas ejercicios para la resolución de modelos aplicando el método simplex
Mas ejercicios para la resolución de modelos aplicando el método simplexMas ejercicios para la resolución de modelos aplicando el método simplex
Mas ejercicios para la resolución de modelos aplicando el método simplex
 
Tema 12.2
Tema 12.2Tema 12.2
Tema 12.2
 
Metodo simplex
Metodo simplexMetodo simplex
Metodo simplex
 
Modulo 3: Las Preferencias y la Utilidad (Parte 2)
Modulo 3: Las Preferencias y la Utilidad (Parte 2)Modulo 3: Las Preferencias y la Utilidad (Parte 2)
Modulo 3: Las Preferencias y la Utilidad (Parte 2)
 
maximos y minimos
maximos y minimosmaximos y minimos
maximos y minimos
 
Ud 11 derivada
Ud 11 derivadaUd 11 derivada
Ud 11 derivada
 
Metodo simplex maxgallagher
Metodo simplex maxgallagherMetodo simplex maxgallagher
Metodo simplex maxgallagher
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
Maximos y minimos funcion de varias variables
Maximos y minimos funcion de varias variablesMaximos y minimos funcion de varias variables
Maximos y minimos funcion de varias variables
 
Método simplex1
Método simplex1Método simplex1
Método simplex1
 
Clase2 El modelo de regresión simple
Clase2 El modelo de regresión simpleClase2 El modelo de regresión simple
Clase2 El modelo de regresión simple
 
Metodo Simplex
Metodo SimplexMetodo Simplex
Metodo Simplex
 
Tarea3 09 sol
Tarea3 09 solTarea3 09 sol
Tarea3 09 sol
 

Andere mochten auch

Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3Andres Garcia Garcia
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Andres Garcia Garcia
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices David Tzemach
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyOren Farhi
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Andres Garcia Garcia
 

Andere mochten auch (12)

Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
 
Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7
 
Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2
 
Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
 
UI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected Journey
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Presentacion 1.10
Presentacion 1.10Presentacion 1.10
Presentacion 1.10
 

Ähnlich wie Introducción a la programación y la informática. Tema 8

Ähnlich wie Introducción a la programación y la informática. Tema 8 (20)

Introduccion a algoritmos y datos.pptx
Introduccion a algoritmos y datos.pptxIntroduccion a algoritmos y datos.pptx
Introduccion a algoritmos y datos.pptx
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magaña
 
Unidad temática v
Unidad temática vUnidad temática v
Unidad temática v
 
Presentacion
PresentacionPresentacion
Presentacion
 
Programacion fantasticos
Programacion  fantasticosProgramacion  fantasticos
Programacion fantasticos
 
Trabajo final programacion
Trabajo final programacionTrabajo final programacion
Trabajo final programacion
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
principios de algortimos, secuencuas y base de dats
principios de algortimos, secuencuas y base de datsprincipios de algortimos, secuencuas y base de dats
principios de algortimos, secuencuas y base de dats
 
Sesión 3_Secuencial Principios de Algoritmos.ppt
Sesión 3_Secuencial Principios de Algoritmos.pptSesión 3_Secuencial Principios de Algoritmos.ppt
Sesión 3_Secuencial Principios de Algoritmos.ppt
 
Tema 2 - Programación básica en C (III)
Tema 2  - Programación básica en C (III)Tema 2  - Programación básica en C (III)
Tema 2 - Programación básica en C (III)
 
FUNCIONES DE STELLA
FUNCIONES DE STELLAFUNCIONES DE STELLA
FUNCIONES DE STELLA
 
Tema 5 ejemplo 1
Tema 5 ejemplo 1Tema 5 ejemplo 1
Tema 5 ejemplo 1
 
C03.pdf
C03.pdfC03.pdf
C03.pdf
 
Tarea6
Tarea6Tarea6
Tarea6
 
Tarea6
Tarea6Tarea6
Tarea6
 
dqwrwer
dqwrwerdqwrwer
dqwrwer
 
Sistemas ecuacion simulink
Sistemas ecuacion simulinkSistemas ecuacion simulink
Sistemas ecuacion simulink
 
Guia_programación Comp-EstructurasControl.pdf
Guia_programación Comp-EstructurasControl.pdfGuia_programación Comp-EstructurasControl.pdf
Guia_programación Comp-EstructurasControl.pdf
 
Elemento3
Elemento3Elemento3
Elemento3
 
Elemento3
Elemento3Elemento3
Elemento3
 

Kürzlich hochgeladen

Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfEduardoJosVargasCama1
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 

Kürzlich hochgeladen (20)

Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 

Introducción a la programación y la informática. Tema 8

  • 1. Tema 8. Estructuras de control: Selecci´on Introducci´on a la Inform´atica y a la Programaci´on (IIP) Curso 2011/2012 Departamento de Sistemas Inform´aticos y Computaci´on
  • 2. ´Indice 1 Introducci´on y motivaci´on 3 2 Revisi´on de condicionales 5 3 Instrucciones condicionales 7 • Instrucci´on if-else • Instrucci´on switch 4 El operador ternario condicional 18 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.2
  • 3. Introducci´on y motivaci´on Hasta ahora hemos considerado el c´odigo simplemente como una secuencia de instrucciones. Sin embargo, la mayor parte de los problemas reales necesitan tomar deci- siones seg´un la situaci´on, y con ello elegir entre distintas subsecuencias de instrucciones. Las estructuras de control permiten cambiar el flujo simple de instrucciones para conseguir estas caracter´ısticas. En un m´etodo, las decisiones se toman generalmente en funci´on de los datos de entrada. La secuencia de instrucciones puede cambiar dependiendo de los datos de entrada o los datos intermedios generados durante la ejecuci´on. En este tema presentaremos los mecanismos que ofrece el lenguaje Java para tomar decisiones. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.3
  • 4. Introducci´on y motivaci´on Las instrucciones condicionales pueden ser sencillas o anidadas: if (temp>100) System.out.println("Temperatura mayor que 100"); else System.out.println("Temperatura menor o igual que 100"); //..... if (temp>100) System.out.println("Mayor que 100"); else if (temp>50) System.out.println("Mayor que 50, menor o igual que 100"); else System.out.println("Menor o igual que 50"); System.out.println("Continuamos aqui"); . . ... 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.4
  • 5. Revisi´on de condicionales La mayor´ıa de las estructuras de decisi´on dependen de expresiones l´ogicas (boolean). Las expresiones l´ogicas se construyen a partir de expresiones num´ericas empleando operadores relacionales y a partir de otras expresiones l´ogicas usando operadores l´ogicos. Una expresi´on l´ogica es toda aquella expresi´on que se eval´ua a cierto (true) o falso (false). Operadores condicionales Operador Operaci´on == Igual a != Diferente a > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que Operadores l´ogicos Operador Operaci´on ! NOT & AND | OR ^ XOR && AND cortocircuitado || OR cortocircuitado 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.5
  • 6. Revisi´on de condicionales Tabla de verdad x y x && y x || y x ^ y !x x & y x | y false false false false false true false true false true true true true false false true true false true true true true false false if ((temp>=15) && (temp<=20)) ..... if ((temp>15) || (temp==15)) ..... // similar a (temp>=15) if ((temp>=0) ^ (temp<=100)) ..... // similar a (temp>100) || (temp<0) 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.6
  • 7. Instrucci´on condicional: if El condicional m´as simple de Java presenta esta estructura: if (B) S B es una condici´on. S es cualquier instrucci´on o bloque de ins- trucciones. Ejecuci´on: 1. Se eval´ua B. 2. Si B es cierto, se ejecuta S. 3. Se contin´ua con la instrucci´on que sigue al condicional. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.7
  • 8. Instrucci´on condicional: if Ejemplo: clase Circulo, m´etodo setRadio: /** actualiza radio del Circulo a nuevoRadio solo si nuevoRadio es positivo o cero. */ public void setRadio(double nuevoRadio) { if (nuevoRadio >= 0) radio = nuevoRadio; } Ejemplo: datos m´edicos, seg´un el sexo, se pregunta si la persona est´a embarazada Humano h = new Humano(); // ... System.out.print("Que edad tiene? "); // ... if (h.getSexo()==’M’) { System.out.print("Esta embarazada? "); // ... } System.out.print("Es alergico a algun medicamento? "); // ... 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.8
  • 9. Instrucci´on condicional: if-else Su forma general es: if (B) S1 else S2 B es una condici´on. S1 y S2 son cualquier instrucci´on o conjunto de instrucciones. Ejecuci´on: 1. Se eval´ua B. 2. Si B es cierto, se ejecuta S1. 3. Si B es falso, se ejecuta S2. 4. Se contin´ua con la instrucci´on que sigue al condicional. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.9
  • 10. Instrucci´on condicional: if-else Ejemplo: seg´un la temperatura, en- cender o apagar el aire acondiciona- do: Habitacion h = new Habitacion(); AireAcon a = new AireAcon(); // ... if (h.getTemp()>26.0) a.encender(); else a.apagar(); // ... Ejemplo: seg´un la intensidad solar, re- gular la intensidad de las luces: DetectorSolar d = new DetectorSolar(); Bombilla b1 = new Bombilla(); Bombilla b2 = new Bombilla(); // ... if (d.getIntensidad()<100) { b1.incrIntens(); b2.incrIntens(); } else { b1.decrIntens(); b2.decrIntens(); } // ... 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.10
  • 11. Instrucci´on condicional: if-else En cualquiera de las formas de las instrucciones condicionales if ...else ..., los bloques de instrucciones pueden incluir otras instrucciones condicionales: instrucciones condicionales anidadas. Ejemplos: if (B1) if (B2) S1; else S2; if (B1) if (B2) S1; else S2; if (B1) if (B2) S1; else S2; else if (B3) S3; else S4; 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.11
  • 12. Instrucci´on condicional: if-else Ejemplo: gestor de multas de tr´afico: // ... if (vehic.getVel()>carr.getMaxVel()) { System.out.println("Velocidad maxima sobrepasada"); if (vehic.getVel()>1.2*carr.getMaxVel()) vehic.crearMultaEspecial(); else vehic.crearMultaNormal(); } else { if (vehic.getVel()<carr.getMinVel()) vehic.crearMultaNormal(); } // ... 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.12
  • 13. Instrucci´on condicional: if-else Una instrucci´on if-else se di- ce m´ultiple cuando cada uno de los else tiene asociado un nuevo if-else (excepto el ´ultimo). if (B1) S1 else if (B2) S2 else if (B3) S3 ... else if (Bn) Sn else Sn+1 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.13
  • 14. Instrucci´on condicional: if-else Ejemplo completo de uso de condicionales: validar una fecha (m´etodo validar) public class Fecha { int dd, mm, aa; // Dia, mes, anyo // ... public boolean bisiesto() { return ((aa%4)==0 && (aa%100)!=0) || (aa%400)==0; } public boolean validar() { int numdd=31; // Numero de dias del mes if ((mm<=0) || (mm>12)) return false; // Examina rango del mes // Determinar rango de dias if ((mm==4) || (mm==6) || (mm==9) || (mm==11)) numdd=30; else if (mm==2) if (bisiesto()) numdd=29; else numdd=28; if ((dd<=0) || (dd>numdd)) return false; // Examina rango del dia return true; } // ... } 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.14
  • 15. Instrucci´on condicional: switch switch (expresion) { case val1: [SC1] [break;] case val2: [SC2] [break;] ... ... case valn: [SCn] [break;] [default: [SCn+1] [break;]] } expresion debe evaluarse a un tipo primitivo (excepto float o double) o a String (desde la versi´on 7.0 de Java). val1, val2, . . . , valn son valores cuyo tipo de datos es compatible con el de expresion. SC1, SC2, . . . , SCn+1 son cualquier secuencia de instrucciones. Los componentes que aparecen entre corchetes ([]) son opcionales. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.15
  • 16. Instrucci´on condicional: switch Ejecuci´on: 1. Se eval´ua expresion. 2. Se compara su valor con todos los valores en los case. 3. Cuando es igual a alguno de ellos, ejecutar las instrucciones desde ese punto incluyendo el c´odigo asocia- do a otras etiquetas case hasta: que se encuentre un break, o que se finaliza el bloque switch, 4. Si no es igual a ning´un valor, se ejecutan las instrucciones asociadas a la etiqueta default (si las hay) hasta el fin del bloque switch. 5. Se contin´ua con la instrucci´on que sigue al bloque switch. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.16
  • 17. Instrucci´on condicional: switch Un ejemplo completo: escribir el nombre del mes a partir de su n´umero: public class Fecha { int dd, mm, aa; // Dia, mes, anyo // ... public String nomMes() { String mn; switch(mm) { case 1: mn=new String("Enero"); break; case 2: mn=new String("Febrero"); break; case 3: mn=new String("Marzo"); break; case 4: mn=new String("Abril"); break; // ... case 12: mn=new String("Diciembre"); break; default: mn=new String("Desconocido"); } return mn; } // ... } 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.17
  • 18. El operador ternario o condicional Java, al igual que C y C++, posee un operador ternario con un comportamiento semejante a una instrucci´on condicional. boolexpr ? expr1 : expr2 donde boolexpr es una expresi´on l´ogica y expr1 y expr2 son expresiones cualquiera, pero del mismo tipo de datos. Ejecuci´on: 1. Se eval´ua boolexpr. 2. Si boolexpr es cierta (true), la expresi´on completa se eval´ua a expr1. 3. En otro caso (boolexpr es falsa), la expresi´on completa se eval´ua a expr2. 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.18
  • 19. El operador ternario o condicional Ejemplo: validaci´on de fecha usando operador ternario public class Fecha { int dd, mm, aa; // Dia, mes, anyo // ... public boolean bisiesto() { return ((aa%4)==0 && (aa%100)!=0) || (aa%400)==0; } public boolean validar() { int numdd=31; // Numero de dias del mes if ((mm<=0) || (mm>12)) return false; // Examina rango de mes // Determinar rango de dia if ((mm==4) || (mm==6) || (mm==9) || (mm==11)) numdd=30; else if (mm==2) numdd=(bisiesto())?29:28; // Aqui se usa el operador ternario if ((dd<=0) || (dd>numdd)) return false; // Examina rango de dia return true; } // ... } 22 de octubre de 2011 IIP - Curso 2011/2012 Page 8.19