Publicado el 24 de Enero del 2019
1.229 visualizaciones desde el 24 de Enero del 2019
384,8 KB
61 paginas
Creado hace 9a (08/10/2015)
Tema 4
Programación
2015-2016
Control de flujo
Programación - Tema 4: Control de Flujo
1
Tema 4. Control de flujo
● Introducción.
● Estructuras condicionales.
● Estructuras de repetición.
Programación - Tema 4: Control de Flujo
2
¿Qué es el flujo de un programa?
Es el orden en que se ejecutan las instrucciones de un
programa
El orden normal es instrucción por instrucción, es decir en
secuencia.
El bloque permite esta ejecución secuencial
Un bloque contiene las instrucciones entre las llaves:
{
}
sentencia 1;
sentencia 2;
sentencia 3;
…
Programación - Tema 4: Control de Flujo
3
Modificando el flujo de un programa
En Java, se puede modificar el flujo secuencial
mediante las estructuras 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 una persona
Escribir “¡Programación!” 10 o 100 o 1000 veces
Programación - Tema 4: Control de Flujo
4
Interacción con el usuario
Salida: Escribir en la pantalla
System.out.println("Hola");
Entrada: Leer del teclado
import java.util.Scanner
...
Scanner teclado = new Scanner(System.in);
...
String nombre = teclado.nextLine();
int horas = teclado.nextInt();
double precio = teclado.nextDouble();
Programación - Tema 4: Control de Flujo
5
Tema 4. Control de flujo
● Introducción.
● Estructuras condicionales.
● Estructuras de repetición.
Programación - Tema 4: Control de Flujo
6
Instrucciones condicionales
• if
• if-else
• if-else-if
• switch
• El operador ?:
Programación - Tema 4: Control de Flujo
7
Instrucción if
Diagrama de flujo
Sintaxis:
condición
true
false
bloque-o-sentencia
if (<condición>){
<bloque-o-sentencia>
. . . . . . .
}
Programación - Tema 4: Control de Flujo
8
Ejercicios
Determinar si un número es divisible por otro (el
resultado de la división es un entero)
Dados dos números si el primer número es
divisible por el segundo, mostrar el cociente en la
pantalla
Programación - Tema 4: Control de Flujo
9
Determinar si un número es divisible por otro
(el resultado de la división es un entero)
Programación - Tema 4: Control de Flujo
10
Dados dos números si el primer número es divisible por el
segundo, mostrar el cociente en la pantalla
Programación - Tema 4: Control de Flujo
11
Instrucción if- else
condición
true
false
bloque1-o-sentencia1
bloque2-o-sentencia2
Sintaxis: if (<condición>){
}
else{
<bloque1-o-sentencia1>
<bloque2-o-sentencia2>
}
Programación - Tema 4: Control de Flujo
12
Ejercicio
Comprobar si un número entero está dentro del
intervalo [-128, …, 127], y:
Si es cierto, escribir que el número es un byte
En caso contrario, mostrar mensaje de error
Programación - Tema 4: Control de Flujo
13
Comprobar si un número entero está dentro del intervalo [-128, …, 127], y: Si es cierto,
escribir que el número es un byte. En caso contrario, mostrar mensaje de error
Programación - Tema 4: Control de Flujo
14
Instrucción if- else - if
Sintaxis:
if (<condición_1>)
<bloque-o-sentencia_1>
else if (<condición_2>)
<bloque-o-sentencia_2>
...
else if (<condición_I>)
<bloque-o-sentencia_I>
else
<bloque-o-sentencia_N>
Programación - Tema 4: Control de Flujo
15
Instrucción if- else - if
Si no hay llaves, cada else siempre está asociado
con el if más cercano
Ejemplo: comprobar si los números x e y son
mayores que 0
Programación - Tema 4: Control de Flujo
16
Instrucción if- else - if
if (x > 0)
if (y > 0)
System.out.println(“Ambos son mayores que 0");
else
System.out.println(“Alguno no es mayor que 0");
if (x > 0) {
if (y > 0){
System.out.println(“Ambos son mayores que 0");
}
else {
System.out.println(“Alguno no es mayor que 0");
}
}
Programación - Tema 4: Control de Flujo
17
Instrucción if- else - if
if (x > 0) {
if (y > 0)
System.out.println(“Ambos son mayores que 0");
}
else
System.out.println(“Alguno no es mayor que 0");
if (x > 0) {
if (y > 0) {
System.out.println(“Ambos son mayores que 0");
}
}
else {
System.out.println(“Alguno no es mayor que 0");
}
Programación - Tema 4: Control de Flujo
18
Ejercicios
Determinar si un número es positivo, negativo o cero
Comprobar si un carácter es un dígito, una letra
mayúscula o una letra minúscula
Código ASCII de:
dígito: 48 – 57
letra mayúscula: 65 – 90
letra minúscula: 97 – 122
Programación - Tema 4: Control de Flujo
19
Determinar si un número es positivo, negativo o cero
Programación - Tema 4: Control de Flujo
20
Comprobar si un carácter es un dígito, una letra mayúscula o una
letra minúscula
Programación - Tema 4: Control de Flujo
21
Instrucción switch
A menudo
la condición 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
Es más compacto que un if-else-if
Programación - Tema 4: Control de Flujo
22
Instrucción switch
Sintaxis:
switch (<selector>) {
case <etiqueta_1>:
<sentencias1>;
break;
case <etiqueta_2>:
break;
<sentencias2>;
...
case <etiqueta_n>:
<sentenciasn>;
break;
default:
}
<sentenciasD>; // opcional
Programación - Tema 4: Control de Flujo
23
Ejercicio
Leer un número entero entre 1 y 10. Después
mostrar ese número escrito en números romanos
Programación - Tema 4: Control de Flujo
24
Leer un número del 1 al 10 y mostrarlo en números romanos
Programación - Tema 4: Control de Flujo
25
¿Qué pasa si excluimos break?
¡El programa pasa a la siguiente instrucción
dentro del switch!
La función de break es cambiar el control de flujo
Programación - Tema 4: Control de Flujo
26
El operador ?:
• Es el único operador ternario en Java (requiere
• Sintaxis:
tres operandos)
<operando1> ? <operando2> : <operando3>
• operando1 tiene que ser una condición
• operando2 y operando3 pueden ser expresiones
de cualquier tipo siempre que sean los dos del
mismo tipo
• El resultado de la expresión es
operando2 si operando1 es true
operando3 si operando1 es false
Programación - Tema 4: Control de Flujo
27
Palabras reservadas
inicio de programa
método ‘main’
class
public, static, void
byte, short, int, long enteros
reales
float, double
caracteres
char
tipo Booleano
boolean
literales Booleanos
true, false
instrucción condicional
if, else, switch
case, break, default
partes de switch
Programación - Tema 4: Control de Flujo
28
Ejercicio
S3-Clase: Condicionales
Programación - Tema 4: Control de Flujo
29
Tema 4. Control de flujo
● Introducción.
● Estructuras condicionales.
● Estructuras de repetición.
Programación - Tema 4: Control de Flujo
30
Repetición
A veces hay que ejecutar la misma operación más de una vez
Ejemplos:
– Escribir ¡Bienvenidos! en la pantalla 10 o 100 o 1000 veces
– Escribir todas las letras del abecedario en la pantalla
– Sumar los gastos anuales de una empresa
En cada caso, se pueden escribir las mismas instrucciones
secuencialmente (esto es muy ineficaz)
En cambio podemos usar bucles (estructuras de repetición)
Programación - Tema 4: Control de Flujo
31
Estructuras de repetición
While
do-while
for
Programación - Tema 4: Control de Flujo
32
Bucle while
Diagrama de flujo
Sintaxis java:
condición
while (<condición>){
true
false
<bloque-o-sentencia>
bloque-o-sentencia
}
Programación - Tema 4: Control de Flujo
33
Condición de while
La condición de un while sirve para determinar
cuando debe terminar el bucle
¡Si la condición siempre se cumple (true), el bucle
while nunca termina! (bucle infinito)
En consecuencia, algo en la condición tiene que
cambiar
Cada bucle necesita una variable que aparezca en
la condición y cuyo valor cambie en cada pasada
Hay que inicializar el valor de la variable de bucle y
actualizar su valor dentro del bucle
Programación - Tema 4: Control de Flujo
34
Ejemplo 1
int contador = 1; // inicialización
while (contador < 6) { // condición
System.out.println(contador);
contador++;
// actualización
}
Programación - Tema 4: Control de Flujo
35
Ejemplo 2
int contador = 1; // inicialización
while (contador < 0) { // condición
System.out.println(contador);
contador--;
// actualización
}
Nunca se entra en el bucle porque la condición es
false desde el principio
Programación - Tema 4: Control de Flujo
36
Ejemplo 3
int contador = 1; // inicialización
while (contador != 10) {// condición
System.out.println(contador);
contador += 2; // actualización
}
El bucle nunca termina porque la condición nunca llega a
ser false
Programación - Tema 4: Control de Flujo
37
Ejemplo 4
int contador = 1; // inicialización
while (contador < 6) // condición
System.out.println(contador);
contador++;
// actualización
El bucle nunca termina porque el valor de la variable de
bucle no se actualiza dentro del bucle
Programación - Tema 4: Control de Flujo
38
Ejercicio
Escribir ¡Bienvenidos! en la pantalla 10 veces
Programación - Tema 4: Control de Flujo
39
Escribir ¡Bienvenidos! en la pantalla 10 veces
public class Bienvenidos {
public static void main(String[] args) {
int contador = 0;
while (contador < 10) {
System.out.println("Bienvenidos");
contador++;
}
}
}
Programación - Tema 4: Control de Flujo
40
Ejercicio
¿Cuál es el valor de la variable x después de ejecutar el
si
Comentarios de: Tema 4 - Control de flujo (0)
No hay comentarios