t5 - construcciones condicionales

Post on 23-Jun-2015

1.160 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Construcciones condicionales

TRANSCRIPT

Tema – 5Construcciones condicionales

PROGRAMACIÓN – Daniel Santiago 2

5.1. Introducción

• En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas en el código. Necesitaremos un mecanismo que nos permita seleccionar unas acciones determinadas dependiendo de cómo se evalúe estas condiciones.

• Java tiene valores booleanos o lógicos (TRUE, FALSE) útiles en evaluaciones condicionales.

PROGRAMACIÓN – Daniel Santiago 3

5.2. If

• Esta construcción evalúa una condición, y si ésta se evalúa como cierta, se ejecutan las sentencias regidas por el if. En caso contrario, el programa continúa ejecutándose por la siguiente instrucción en orden secuencial después del if.

PROGRAMACIÓN – Daniel Santiago 4

5.2. If

if (condición){ sentencia(s);

}sentencia(s);

PROGRAMACIÓN – Daniel Santiago 5

5.2. If

• Ejemplo:public static void main(String args[]){ int a = 24; if(a%2 == 0) a = a+1; System.out.println(“Ahora es impar: ” + a);}

PROGRAMACIÓN – Daniel Santiago 6

5.2.1. If-else

• En este tipo de construcción se empieza evaluando la condición. Si es cierta, se ejecutan las instrucciones regidas por el if, sino se ejecutan las instrucciones regidas por el else.

PROGRAMACIÓN – Daniel Santiago 7

5.2.1. If-else

if (condición){ sentencia(s);

}else{

sentencia(s);}

PROGRAMACIÓN – Daniel Santiago 8

5.2.1. If-else

• Ejemplo:public static void main(String args[]){ int a = 24; if(a%2 == 0) System.out.println(“El número “ + a + “ es par”); else System.out.println(“El número “ + a + “ es

impar”);}

PROGRAMACIÓN – Daniel Santiago 9

5.2.1. If-else

• El hecho de que la construcción else sea opcional puede causar problemas de ambigüedad.

• Regla: una sentencia else se asocia con el if precedente más cercano siempre y cuando éste no tenga ya asociado otro else.

PROGRAMACIÓN – Daniel Santiago 10

5.2.1. If-else

• No es lo mismo:

if (n>0)if (a > b)z = a;elsez = b;

if (n>0){if (a > b)z = a;}elsez = b;

PROGRAMACIÓN – Daniel Santiago 11

5.2.2. If-else-if

• Esta construcción plantea varias condiciones de forma escalonada que se evalúan secuencialmente, de arriba abajo, hasta encontrar una que se cumpla. Entonces se ejecutan las instrucciones regidas por esa condición. Si no se encuentra ninguna condición cierta, se ejecutan las instrucciones regidas por el else.

PROGRAMACIÓN – Daniel Santiago 12

5.2.2. If-else-ifif (condición 1){

sentencia(s);}else if (condición 2){

sentencia(s);}…else if (condición N){

sentencia(s);}else{

sentencia(s);}

PROGRAMACIÓN – Daniel Santiago 13

5.2.2. If-else-if

• Ejemplo:public static void main(String args[]){ int hora = 23; if((hora >= 0) && (hora < 12)) System.out.println(“Buenos días”); else if((hora >= 12) && (hora < 18)) System.out.println(“Buenas tardes”); else if((hora >= 18) && (hora < 24)) System.out.println(“Buenas noches”); else System.out.println(“Hora no válida”);}

PROGRAMACIÓN – Daniel Santiago 14

5.3. Operador condicional “?”

• Es un operador condicional ternario.• Sintaxis:

expresión_1 ? expresión_2: expresión_3– Si la primera expresión se evalúa cierta, toda la

expresión toma el valor de la segunda expresión. Si la primera expresión se evalúa falsa, toda la expresión toma el valor de la tercera expresión.

PROGRAMACIÓN – Daniel Santiago 15

5.3. Operador condicional “?”

• Ejemplo:public static void main(String args[]){ int a = 5, b = 6, max; max = (a > b) ? a : b; System.out.println(“El máximo es: ” + max);}

PROGRAMACIÓN – Daniel Santiago 16

5.4. Switch• Equivalente a la estructura If-else-if, pero de forma más compacta, legible y

elegante.• Sintaxis:

switch(expresión){case constante_1:

grupo_de_sentencias_1;break;

case constante_2:grupo_de_sentencias_2;break;

…default:

grupo_de_sentencias_por_defecto;break;

}

PROGRAMACIÓN – Daniel Santiago 17

5.4. Switch

• La expresión debe ser de tipo entero o carácter, al igual que todas las constantes asociadas a cada case.

• En primer lugar se evalúa la expresión. El resultado se compara con el valor de cada case, y si son iguales, se ejecutan las sentencias asociadas. Si ningún valor coincide con el resultado de la expresión, se ejecutan las sentencias del bloque default.

• La sentencia break hace que la ejecución del switch termine. Se verá más en detalla esta sentencia en el tema 7, estructuras de salto.

PROGRAMACIÓN – Daniel Santiago 18

5.4. Switch• Ejemplo:

public static void main(String args[]){ int num = 5; switch(num){ case 0:

System.out.println(“CERO”); break;

case 1: System.out.println(“UNO”); break;

… default:

System.out.println(“El número está fuera del rango”); break;

}}

PROGRAMACIÓN – Daniel Santiago 19

5.4. Switch

• Puede haber algún case vacío, sin sentencias. Este caso es útil cuando se quiere que varias etiquetas case ejecuten un mismo grupo de sentencias.

PROGRAMACIÓN – Daniel Santiago 20

5.4. Switch• Ejemplo:

public static void main(){ int num = 0; switch(num){ case 0:

case 1: System.out.println(“Es un CERO o un UNO”); break;

… default:

System.out.println(“El número está fuera del rango”); break;

}}

top related