SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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
 

Destacado (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
 

Similar a Control Flow Structures: Selection

Similar a Control Flow Structures: Selection (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
 

Último

Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 

Último (20)

Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 

Control Flow Structures: Selection

  • 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