Actualizado el 16 de Abril del 2017 (Publicado el 14 de Enero del 2017)
2.135 visualizaciones desde el 14 de Enero del 2017
391,7 KB
17 paginas
Creado hace 15a (12/11/2009)
fundamentos de programación
(unidad 4) programación estructurada en Java
Para ver una copia completa de la licencia, acudir a la
dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es
(3)
(4)
programación
estructurada en
Java
esquema de la unidad
(4.1) introducción. expresiones lógicas
(4.2) if
(4.2.1) sentencia condicional simple
(4.2.2) sentencia condicional compuesta
(4.2.3) anidación
____________________________________ 6
_________________________________________________________________ 6
________________________________________________ 6
___________________________________________ 7
_________________________________________________________________ 8
____________________________________________________________ 9
_____________________________________________________________ 11
__________________________________________________________ 14
_______________________________________________________________ 15
_____________________________________ 16
(4.3) switch
(4.4) while
(4.5) do while
(4.6) for
(4.7) sentencias de ruptura de flujo
(4.7.1) sentencia break
(4.7.2) sentencia continue
____________________________________________________________ 16
_________________________________________________________ 17
(5)
fundamentos de programación
(unidad 4) programación estructurada en Java
(4.1) introducción. expresiones lógicas
Hasta ahora las instrucciones que hemos visto, son instrucciones que se
ejecutan secuencialmente; es decir, podemos saber lo que hace el programa
leyendo las líneas de izquierda a derecha y de arriba abajo.
Las instrucciones de control de flujo permiten alterar esta forma de
ejecución. A partir de ahora habrá líneas en el código que se ejecutarán o no
dependiendo de una condición.
Esa condición se construye utilizando lo que se conoce como expresión
lógica. Una expresión lógica es cualquier tipo de expresión Java que dé un
resultado booleano (verdadero o falso).
Las expresiones lógicas se construyen por medio de variables booleanas o
bien a través de los operadores relacionales (==, >, <,…) y lógicos (&&,||, !).
(4.2) if
(4.2.1) sentencia condicional simple
Se trata de una sentencia que, tras evaluar una expresión lógica, ejecuta una
serie de instrucciones en caso de que la expresión lógica sea verdadera. Si la
expresión tiene un resultado falso, no se ejecutará ninguna expresión. Su
sintaxis es:
instrucciones
if(expresión lógica) {
…
}
Las llaves se requieren sólo si va a haber varias instrucciones. En otro caso se
puede crear el if sin llaves:
if(expresión lógica) sentencia;
Ejemplo:
if(nota>=5){
System.out.println("Aprobado");
}
aprobados++;
La idea gráfica del funcionamiento del código anterior sería:
(6)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
[nota>=5]
escribe "Aprobado"
[nota<5]
incrementa nº
aprobados
Ilustración 3-1, Diagrama de actividad de la
instrucción if simple
(4.2.2) sentencia condicional compuesta
Es igual que la anterior, sólo que se añade un apartado else que contiene
instrucciones que se ejecutarán si la expresión evaluada por el if es falsa.
Sintaxis:
instrucciones
if(expresión lógica){
….
}
else {
…
}
instrucciones
Como en el caso anterior, las llaves son necesarias sólo si se ejecuta más de
una sentencia. Ejemplo de sentencia if-else:
aprobados++;
if(nota>=5){
System.out.println("Aprobado");
}
else {
System.out.println("Suspenso");
}
suspensos++;
(7)
fundamentos de programación
(unidad 4) programación estructurada en Java
escribe "Suspenso"
escribe "Aprobado"
[nota<5]
[nota>=5]
decrementa nº
aprobados
incrementa nº
aprobados
Ilustración 3-2, Diagrama de actividad de una instrucción if doble
(4.2.3) anidación
Dentro de una sentencia if se puede colocar otra sentencia if. A esto se le
llama anidación y permite crear programas donde se valoren expresiones
complejas. La nueva sentencia puede ir tanto en la parte if como en la parte
else.
Las anidaciones se utilizan muchísimo al programar. Sólo hay que tener en
cuenta que siempre se debe cerrar primero el último if que se abrió. Es muy
importante también tabular el código correctamente para que las anidaciones
sean legibles.
El código podría ser:
if (x==1) {
instrucciones
…
if(x==2) {
}
}
else {
else {
}
}
instrucciones
…
if(x==3) {
}
instrucciones
…
(8)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
Una forma más legible de escribir ese mismo código sería:
instrucciones
instrucciones
if (x==1) {
…
}
else if (x==2) {
…
}
else if (x==3) {
…
}
instrucciones
dando lugar a la llamada instrucción if-else-if.
(4.3) switch
Se la llama estructura condicional compleja porque permite evaluar varios
valores a la vez. En realidad sirve como sustituta de algunas expresiones de
tipo if-else-if. Sintaxis:
instrucciones del valor 1
[break]
instrucciones del valor 1
[break]]
switch (expresiónEntera) {
case valor1:
[case valor2:
[
[default:
}
.
.
.]
instrucciones que se ejecutan si la expresión no toma
ninguno de los valores anteriores
..]
Esta instrucción evalúa una expresión (que debe ser short, int, byte o char), y
según el valor de la misma ejecuta instrucciones. Cada case contiene un valor
de la expresión; si efectivamente la expresión equivale a ese valor, se
ejecutan las instrucciones de ese case y de los siguientes.
(9)
fundamentos de programación
(unidad 4) programación estructurada en Java
La instrucción break se utiliza para salir del switch. De tal modo que si
queremos que para un determinado valor se ejecuten las instrucciones de un
apartado case y sólo las de ese apartado, entonces habrá que finalizar ese
case con un break.
El bloque default sirve para ejecutar instrucciones para los casos en los que
la expresión no se ajuste a ningún case.
Ejemplo 1:
dia=”Miércoles”;
break;
dia=”Martes”;
break;
dia=”Lunes”;
break;
switch (diasemana) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
default:
}
dia=”Jueves”;
break;
dia=”Sábado”;
break;
dia=”Viernes”;
break;
dia=”?”;
dia=”Domingo”;
break;
Ejemplo 2:
switch (diasemana) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
}
laborable=false;
laborable=true; break;
(10)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
(4.4) while
La instrucción while permite crear bucles. Un bucle es un conjunto de
sentencias que se repiten mientras se cumpla una determinada condición. Los
bucles while agrupan instrucciones las cuales se ejecutan continuamente
hasta que una condición que se evalúa sea falsa.
La condición se mira antes de entrar dentro del while y cada vez que se
termina de ejecutar las instrucciones del while
Sintaxis:
while (expresión lógica) {
}
sentencias que se ejecutan si la condición es true
El programa se ejecuta siguiendo estos pasos:
(1)
(2)
Se evalúa la expresión lógica
Si la expresión es verdadera ejecuta las sentencias, sino el programa
abandona la sentencia while
Tras ejecutar las sentencias, volvemos al paso 1
(3)
Ejemplo (escribir números del 1 al 100):
int i=1;
while (i<=100){
System.out.println(i);
}
i++;
[ i<=100 ]
escribe i
[i>100]
Ilustración 3-3, Diagrama UML de actividad del
bucle while
(11)
fundamentos de programación
(unidad 4) programación estructurada en Java
bucles con contador
Se llaman así a los bucles que se repiten una serie determinada de veces.
Dichos bucles están controlados por un contador (o incluso más de uno). El
contador es una variable que va variando su valor (de uno en uno, de dos en
dos,… o como queramos) en cada vuelta del bucle. Cuando el contador alcanza
un límite determinado, entonces el bucle termina.
En todos los bucles de contador necesitamos saber:
(1) Lo que vale la variable contadora al principio. Antes de entrar en el
bucle
(2) Lo que varía (lo que se incrementa o decrementa) el contador en cada
vuelta del bucle.
(3) Las acciones a realizar en cada vuelta del bucle
(4) El valor final del contador. En cuanto se rebase el bucle termina. Dicho
valor se pone como condición del bucle, pero a la inversa; es decir, la
condición mide el valor que tiene que tener el contador para que el
bucle se repita y no para que termine.
Ejemplo:
valor, el bucle termina */
(por supuesto i debería estar declarada como entera, int) */
200, el bucle se repetirá, cuando i rebase este
i=10; /*Valor inicial del contador, empieza valiendo 10
while (i<=200){ /* condición del bucle, mientras i sea menor de
printf(“%d\n”,i); /*acciones que ocurren en cada vuelta del bucle
}
/* Al final el bucle escribe:
10
20
30
…
y así hasta 200
*/
en este caso simplemente escribe el valor
del contador */
i+=10; /* Variación del contador, en este caso cuenta de 10 en 10*/
(12)
Bucles de centinela
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
Es el segundo tipo de bucle básico. Una condición lógica llamada centinela,
que puede ser desde una simple variable booleana hasta una expresión lógic
Comentarios de: programación estructurada en lenguaje Java (0)
No hay comentarios