22
Control de flujo Fundamentos de programación/ Programación I 2007-2008

flujo.ppt

Embed Size (px)

Citation preview

Page 1: flujo.ppt

Control de flujo

Fundamentos de programación/Programación I

2007-2008

Page 2: flujo.ppt

2

¿Qué es el flujo de un programa?

• Es el orden con el cual el ordenador ejecuta instrucciones

• El orden común es en secuencia, instrucción por instrucción

• El bloque es el que permite este orden secuencial

• Un bloque está marcado con llaves:{

instruccion1;instruccion2;instruccion3;…

}

Page 3: flujo.ppt

3

¿Qué es el flujo de un programa?

• En Java, existen dos estructuras que cambian el flujo de control:– Estructuras condicionales: un bloque sólo se ejecuta

bajo ciertas condiciones– Estructuras de repetición: un mismo bloque se

ejecuta repetidamente

• Ejemplos:– Escribir un mensaje de saludo si encuentras el

nombre de un amigo– Escribir “¡Hola Mundo!” 10 o 100 o 1000 veces

Page 4: flujo.ppt

4

Instrucciones condicionales

• if

• if-else

• if-else-if

• switch

• El operador ?:

Page 5: flujo.ppt

5

Instrucción ifSintaxis: if (<expresión-boolean>) <bloque-o-instruccion>

expresión-boolean

bloque-o-instruccion

true false

Control de flujo

Page 6: flujo.ppt

6

Ejercicio

• Saber si un número es divisible por otro (el resultado de la división es un entero)

• Si el primer número es divisible por el segundo, mostrar el cociente en la pantalla

Page 7: flujo.ppt

7

Instrucción if-elseSintaxis: if (<expresión-boolean>) <bloque-o-instruccion1>

else<bloque-o-instruccion2>

expresión-boolean

bloque-o-instruccion1

true false

bloque-o-instruccion2

Page 8: flujo.ppt

8

Ejercicio

• Saber si un número entero está dentro del intervalo [-128, …, 127]

• Si es el caso, escribir que el número es un byte• En caso contrario, mostrar mensaje de error

Page 9: flujo.ppt

9

Sintaxis: if (<expresión-boolean1>) <bloque-o-instruccion1>

else if (<expresión-boolean2>)<bloque-o-instruccion2>

...else if (<expresión-booleanN-1>)

<bloque-o-instruccionN-1>else

<bloque-o-instruccionN>

Instrucción if-else-if

Page 10: flujo.ppt

10

Ejercicio

• Saber si un número es positivo, negativo, o cero

Page 11: flujo.ppt

11

Ejercicio

• Saber si un carácter es un dígito, una letra mayúscula o una letra minúscula

• ASCII:– dígito: 48 – 57– letra mayúscula: 65 – 90– letra minúscula: 97 – 122

Page 12: flujo.ppt

12

Instrucción if-else

• Sin llaves, cada else siempre está asociado con el if más cercano

• Ejemplo: Saber si ambos números x e y son mayor que 0

Page 13: flujo.ppt

13

Instrucción if-else

if (x > 0) if (y > 0) System.out.println(“Ambos mayor que 0"); else System.out.println(“Alguno no mayor que 0");

Page 14: flujo.ppt

14

Instrucción if-else

if (x > 0) { if (y > 0) System.out.println(“Ambos mayor que 0");} else System.out.println(“Alguno no mayor que 0");

Page 15: flujo.ppt

15

Sentido: if (<expresión-boolean1>) <bloque-o-instruccion1>

else {if (<expresión-boolean2>)

<bloque-o-instruccion2>

else { ...

}}

Instrucción if-else-if

Page 16: flujo.ppt

16

Instrucción switch

• A menudo la expresión boolean de un if-else-if depende de una sola variable de tipo primitivo

• Tipos primitivos = palabras reservadas; por ejemplo byte, int, double pero no String

• En este caso se puede utilizar otra instrucción llamada switch

• Más compacto que un if-else-if

Page 17: flujo.ppt

17

Instrucción switchswitch (<selector>) {

case <etiqueta1>: <sentencias1>; break;

case <etiqueta2>: <sentencias2>; break;

...case <etiquetan>: <sentenciasn>;

break;default: <sentenciasd>; // opcional

}

Page 18: flujo.ppt

18

Ejercicio

• Leer un número entero entre 1 y 10• Mostrar el número escrito en numerales

romanos

Page 19: flujo.ppt

19

¿Qué pasa si excluimos break?

• ¡El programa pasa a la siguiente instrucción dentro del switch!

• La función de break es de cambiar el control de flujo

Page 20: flujo.ppt

20

El operador ?:

• Único operador ternario en Java (requiere tres operandos)

• Sintaxis: <operando1> ? <operando2> : <operando3>

• operando1 tiene que ser una expresión boolean

• operando2 y operando3 pueden ser expresiones de cualquier tipo siempre que sean ambos del mismo tipo

• El resultado de la expresión esoperando2 si operando1 es trueoperando3 si operando1 es false

Page 21: flujo.ppt

21

El operador ?:

• Como siempre, si queremos guardar el resultado de la expresión, la variable tiene que ser del mismo tipo que operando2 y operando3

• Prioridad: ?: se evalúa antes de asignación (=) pero después de los demás operadores

• Ejemplos:int a = n == 0 ? 10 : 20;

char c = n > 0 && a > 15 ? ‘a’ : ‘b’;

String s = a < 15 ? “pequeño” : “grande”;

Page 22: flujo.ppt

22

Palabras reservadas

class inicio de programa

public, static, void método ‘main’byte, short, int, long enterosfloat, double realeschar caracteresboolean tipo Booleantrue, false literales Booleanif, else, switch instrucción condicionalcase, break, default parte de switch