Publicado el 14 de Enero del 2017
2.362 visualizaciones desde el 14 de Enero del 2017
139,6 KB
17 paginas
Creado hace 15a (02/11/2009)
Bloque II. Elementos del lenguaje de
programación Java
• 1.Introducción a los lenguajes de programación
• 2. Estructura de un programa
• 3. Datos y expresiones simples
• 4. Instrucciones de control
• 5. Entrada/salida simple
• 6. Arrays, secuencias y tablas
• 7. Métodos
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
1
4. Instrucciones de control
Las instrucciones de un programa pueden ser:
• simples:
UNIVERSIDAD
DE CANTABRIA
• compuestas:
- expresiones: de asignación, incremento o decremento
-
llamadas a métodos
- creación de objetos
instrucciones de control: if, switch, while, do-while, for
-
- se encierran entre llaves {}, y también se llaman bloques
- pueden contener muchas instrucciones y declaraciones;
-
las declaraciones del bloque sólo son visibles en él, y en los
bloques contenidos en él
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
2
4.1. Instrucción condicional simple
La instrucción condicional simple permite tomar decisiones
empleando una variable booleana:
UNIVERSIDAD
DE CANTABRIA
Java
if (condición) {
instrucciones;
}
if (condición) {
instrucciones;
} else {
instrucciones;
}
Pseudocódigo
si condición entonces
instrucciones
fsi
si condición entonces
instrucciones
si no
instrucciones
fsi
La condición: expresión booleana (lógica o relacional)
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
3
UNIVERSIDAD
DE CANTABRIA
La instrucción condicional simple
(cont.)
También se puede escribir, aunque es menos recomendable (por
ser menos visible el comienzo y final):
if (condición)
instrucción;
else
instrucción;
Ejemplo: poner un texto aprobado o suspenso según la nota
if (nota>=5.0) {
System.out.println("Aprobado");
} else {
System.out.println("Suspenso");
}
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
4
Instrucciones condicionales anidadas
Las instrucciones if también se pueden anidar:
• el else se asocia al if anterior más próximo que no tenga else,
siempre que esté en el mismo bloque que el else.
UNIVERSIDAD
DE CANTABRIA
Ejemplo: poner "cum laude" en el ejemplo anterior si nota>=9
if (nota>=5.0) {
System.out.print("Aprobado");
if (nota>=9.0) {
System.out.println(" cum laude");
} else {
System.out.println("");
}
} else {
System.out.println("Suspenso");
}
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
5
UNIVERSIDAD
DE CANTABRIA
Expresiones condicionales
Como expresión condicional se pueden usar operaciones
relacionales y lógicas
Ejemplo: Intervalo: condición a en (5.0,6.3]
if (a>5.0 && a<=6.3) ...
Ejemplo: Intervalo contrario: condición a no está en (5.0,6.3]
if (a<=5.0 || a>6.3) ...
if (!(a>5.0 && a<=6.3)) ...
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
6
UNIVERSIDAD
DE CANTABRIA
Son bisiestos los años múlti-
plos de 4, excepto los múltiplos
de 100 que no sean múltiplos
de 400
Ejemplo: año bisiesto
boolean esBisiesto;
int año=...;
if (año % 4 == 0) {
if (año % 100 == 0) {
if (año % 400 == 0) {
esBisiesto=true;
} else {
esBisiesto=false;
}
} else {
esBisiesto=true;
}
} else {
esBisiesto=false;
}
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
7
Ejemplo: año bisiesto (cont.)
if (esBisiesto) {
System.out.println("El año "+año+" es bisiesto");
} else {
System.out.println("El año "+año+" no es bisiesto");
}
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
8
4.2. Instrucción condicional múltiple
Permite tomar una decisión de múltiples posibilidades, en función
de un valor no booleano
• Si este valor es discreto (byte, short, int, long, char, o
enumerado), podemos utilizar una instrucción switch
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
9
Instrucción condicional múltiple (cont.)
UNIVERSIDAD
DE CANTABRIA
Java
switch (expresión discreta) {
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
case valor3:
case valor4:
instrucciones;
break;
default:
instrucciones;
}
Pseudocódigo
si
exp=valor1 -> instrucciones;
exp=valor2 -> instrucciones;
exp=valor3 | exp= valor4 ->
instrucciones;
exp=ninguno de los anteriores ->
instrucciones
fsi
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
10
Instrucción switch (cont.)
El funcionamiento es el siguiente:
UNIVERSIDAD
DE CANTABRIA
- si no coincide, se compara con el segundo valor, y así
- se compara la expresión con el primer valor
- si coincide, se ejecutan las instrucciones puestas bajo ese valor, y
todas las siguientes que se encuentren, hasta encontrar un break.
sucesivamente
haya en la parte default, si existe.
por la siguiente instrucción
los valores deben ser constantes, no variables,
- si no coincide con ningún valor, se ejecutan las instrucciones que
- después de un break, la instrucción switch termina y seguimos
-
- no puede haber ninguno coincidente.
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
11
UNIVERSIDAD
DE CANTABRIA
Ejemplo: nota media (entera) con letra
public class NotaEntera {
private int notaMedia;
public NotaEntera (int nota) {
notaMedia=nota;
}
public String convierte() {
String notaLetra;
switch (notaMedia) {
case 0:
case 1:
case 2:
case 3:
case 4:
notaLetra="Suspenso";
break;
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
12
UNIVERSIDAD
DE CANTABRIA
Ejemplo: nota media (entera) con letra
(cont.)
case 5:
case 6:
notaLetra="Aprobado";
break;
case 7:
case 8:
notaLetra="Notable";
break;
case 9:
case 10:
notaLetra="Sobresaliente";
break;
default:
notaLetra="Error";
}
return notaLetra;
}
}
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
13
Instrucción condicional múltiple no
discreta
Cuando la decisión no es discreta, usamos una "escalera" de
instrucciones if:
Java
if (condición1) {
instrucciones;
} else if (condición2) {
instrucciones;
} else if (condición3) {
instrucciones;
} ...
} else {
instrucciones;
}
si
condición1 -> instrucciones;
condición2 -> instrucciones;
condición3 -> instrucciones;
ninguna de las anteriores ->
instrucciones;
fsi
UNIVERSIDAD
DE CANTABRIA
Pseudocódigo
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
14
Instrucción condicional múltiple no
discreta (cont.)
• Las condiciones se examinan empezando por la de arriba
• Tan pronto como una se cumple, sus instrucciones se ejecutan
UNIVERSIDAD
DE CANTABRIA
y la instrucción se abandona.
• Si ninguna de las condiciones es cierta se ejecuta la última
parte else.
La instrucción switch es mucho más eficiente que la instrucción
condicional múltiple
• en switch sólo se toma una decisión
• en el if múltiple se evalúan muchas condiciones.
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
15
UNIVERSIDAD
DE CANTABRIA
Ejemplo: nota media (real) con letra
public class NotaReal {
private double notaMedia;
public NotaReal(double nota) {
notaMedia=nota;
}
public String convierte() {
String notaLetra;
if (notaMedia<0.0) {
notaLetra="Error";
} else if (notaMedia<5.0) {
notaLetra="Suspenso";
} else if (notaMedia<7.0) {
notaLetra="Aprobado";
} else if (notaMedia<9.0) {
notaLetra="Notable";
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
16
Ejemplo: nota media (real) con letra
(cont.)
} else if (notaMedia<=10.0) {
notaLetra="Sobresaliente";
} else {
notaLetra="Error";
}
return notaLetra;
}
}
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
17
4.3. Instrucciones de lazo o bucle
Permiten ejecutar múltiples veces unas instrucciones
• se corresponden a la composición iterativa de teoría
La cantidad de veces se puede establecer mediante:
• una condición:
UNIVERSIDAD
DE CANTABRIA
- se comprueba al principio: las instrucciones del lazo se hacen cero
- se comprueba al final: las instrucciones del lazo se hacen una o
o más veces
más veces
• un número fijo de veces: se usa una variable de control
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
2/nov/09
18
4.3.1. Lazo con condición de
permanencia al principio
Es el lazo while:
Java
while (condicion) {
instrucciones;
}
Pseudocódigo
mientras condición hacer
instrucciones;
fmientras
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José
Comentarios de: Bloque II. Elementos del lenguaje de programación Java - 4. Instrucciones de control (0)
No hay comentarios