Las estructuras
de control permiten modificar
el flujo de ejecución de las instrucciones de un programa.
Con las estructuras de
control se puede:
·
De acuerdo a una condición, ejecutar un grupo u otro de
sentencias
(If-Then-Else)
·
De acuerdo al valor de una variable, ejecutar un grupo u otro de sentencias (Select- Case)
·
Ejecutar un grupo de sentencias mientras se cumpla una condición
(Do-While)
·
Ejecutar un grupo de sentencias hasta que se cumpla una condición
(Do-Until)
·
Ejecutar un grupo de sentencias un número determinado de veces
(For-Next)
La
sentencia if else.
La
sentencia if else nos permite ejecutar un bloque de
código o no, dependiendo de una condición que se evalúa justo antes de este
bloque. Esta condición se evalúa a un valor booleano, es decir, su resultado solo puede tomar dos
valores, true o false. A
continuación un ejemplo:
1
2
3
4
5
6
|
int
edad = 21;if(edad >= 18)
{ System.out.println("Eres
mayor de edad.");} else
{ System.out.println("Eres
menor de edad.");} |
si la condición es evaluada como true como es el caso, se ejecutará el primer println()
mostrando que eres mayor de edad, si la condición fuese false, se ejecutaría el segundo println(). Siempre se
ejecuta uno de los bloques si está presente el else, sino se ejecutará un bloque o ninguno.
También
podemos añadir un nuevo bloque if en la sentencia else, formando los denominados if
encadenados, pudiendo hacer
todos los que queramos:
1
2
3
4
5
6
7
8
9
10
|
int
edad = 50;if(edad <= 14)
{ System.out.println("Eres
un niño.");} else
if(edad > 14 && edad < 18){ System.out.println("Eres
adolescente.");} else if(edad >= 18 && edad < 65) { System.out.println("Eres
un adulto.");} else { System.out.println("Eres anciano.");} |
En este caso la salida por pantalla será "Eres un
adulto.", de esta manera podemos colocar tantos else
if como queramos, además como vemos, en la
última opción se puede obviar el if, y colocar solo el else, ya que no hay mas posibilidades que tener en
cuenta.
También se pueden colocar bloques if else, dentro de otros bloques if else, y encadenar tantos como necesitemos, eso si, teniendo en cuenta que hacer esto muchas veces puede dificultar la lectura de nuestro código:
También se pueden colocar bloques if else, dentro de otros bloques if else, y encadenar tantos como necesitemos, eso si, teniendo en cuenta que hacer esto muchas veces puede dificultar la lectura de nuestro código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
char sexo = 'f';int edad = 25;if(edad >= 18) { if(sexo == 'm') { System.out.println("Eres
un hombre mayor de edad."); }
else { System.out.println("Eres
una mujer mayor de edad."); }} else
{ if(sexo
== 'm') { System.out.println("Eres
un niño menor de edad."); }
else { System.out.println("Eres
una niña menor de edad."); }} |
La sentencia switch
Esta
sentencia permite elegir múltiples caminos a seguir por el flujo de ejecución
de nuestro programa. En este caso, el camino a seguir se
selecciona basándose en el valor de una expresión que se evalúa a un
valor entero:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
int mes = 2;switch(mes) { case 1: System.out.println("Es enero"); break; case 2: System.out.println("Es
febrero"); break; case 3: System.out.println("Es
marzo"); break; case 4: System.out.println("Es
abril"); break; default: System.out.println("Ninguno
de los anteriores");} |
En este
caso, la salida sería "Es febrero", podemos poner todos los case que necesitemos y utilizar el default o no, de esta manera si la opción a evaluar
no esta contemplada en ninguno de los case el switch no hará nada y la ejecución del
programa seguiré de largo.
Sin break,
nuestro programa ejecutaría el código del case evaluado como true, en
nuestro caso el 2º, y además todos los siguientes hasta algún break, y si no lo hubiera, hasta el final de la
estructura switch,
ejecutando el código de los case inferiores y también del default.
El caso de no utilizar break,
puede ser conveniente en algunos casos como en este ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
int mes = 4;switch(mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("El
mes tiene 31 dias."); break; case 4: case 6: case 9: case 11: System.out.println("El mes tiene 30 dias."); break; default: System.out.println("El
mes es febrero.");} |
No hay comentarios:
Publicar un comentario