Bifurcaciones
Las bifurcaciones permiten ejecutar una de entre varias acciones en función del valor de una
expresión lógica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de
controlar el flujo de ejecución de un programa. Existen dos bifurcaciones diferentes: ify switch.
Bifurcación if
Esta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga la
expresión de comparación (se ejecuta si la expresión de comparación tiene valor true). Tiene la
forma siguiente:
if (booleanExpression) {
statements;
statements;
}
Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y 110 son
necesarias si sólo hay una sentencia dentro del if.
Bifurcación if else
Análoga a la anterior, de la cual es una ampliación. Las sentencias incluidas en el else se ejecutan en
el caso de 110 cumplirse la expresión de comparación (false).
if
(booleanExpressionl) {
statements1;
} else if (booleanExpression2) {
} else if (booleanExpression2) {
statements2;
} else if (booleanExpression3) {
} else if (booleanExpression3) {
statements3;
} else {
} else {
statements4;
}
int numero = 61; // La variable "numero"
tiene dos dígitos
if(Math.abs(numero)
< 10) // Math.absO calcula el valor
absoluto. (false)
System.out.println("Numero
tiene 1 dígito ");
else if (Math.abs(numero) < 100) // Si numero es 61, estamos en este caso (true)
else if (Math.abs(numero) < 100) // Si numero es 61, estamos en este caso (true)
System.out.println("Numero
tiene 1 dígito ");
else { // Resto de los casos
else { // Resto de los casos
System.out.println("Numero tiene mas de 3
dígitos ");
System.out.println("Se ha ejecutado la opcion por defecto ");
System.out.println("Se ha ejecutado la opcion por defecto ");
}
Sentencia switch
Se trata de una alternativa a la bifurcación if elseif else cuando se compara la misma expresión con
distintos valores. Su forma general es la siguiente:
switch
(expression) {
case valuel: statementsl; break;
case value2: statements2; break;
case value3: statements3; break;
case value4: statements4; break;
case value5: statements5; break;
case value6: statements6; break;
[default:
statements7;]
Las características más relevantes de switcli son las siguientes:
1. Cada sentencia case se corresponde con un único valor de expression. No se pueden establecer
rangos o condiciones sino que se debe comparar con valores concretos. El ejemplo del Apartado
2.3.3.3 no se podría realizar utilizando switch.
2. Los valores no comprendidos en ninguna sentencia case se pueden gestionar en default. que es
opcional.
3. En ausencia de break, cuando se ejecuta una sentencia case se ejecutan también todas las case
que van a continuación, hasta que se llega a un break o hasta que se termina el switch.
Ejemplo:
char c = (char)(Math.random()*26+'a1);
// Generación aleatoria de letras minúsculas
System.out.println("La letra " + c );
switch (c) {
System.out.println("La letra " + c );
switch (c) {
case
|
'a'
|
//
|
Se
|
compara
|
con
|
la
|
letra
|
a
|
case
|
'e'
|
//
|
Se
|
compara
|
con
|
la
|
letra
|
e
|
case
|
'i'
|
//
|
Se
|
compara
|
con
|
la
|
letra
|
i
|
case
|
'o'
|
//
|
Se
|
compara
|
con
|
la
|
letra
|
o
|
case
|
1 u1
|
//
|
Se
|
compara
|
con
|
la
|
letra
|
u
|
System.out.println("
Es una vocal "); break;
default:
default:
System.out.println("
Es una consonante ");
}
No hay comentarios:
Publicar un comentario