Está en la página 1de 21

Programación

Estructuras alternativas (condicionales)


Grados en:

Ingeniería en Tecnologías de Telecomunicación

Ingeniería Telemática

Ingeniería de Sonido e Imagen

Ingeniería de Comunicaciones Móviles y Espaciales


Control de flujo

• Algoritmo: Conjunto ordenado de pasos que indican la secuencia de


operaciones que se han de realizar para resolver un problema, sin tener en
cuenta un lenguaje de programación en concreto

• Programa: Conjunto de instrucciones o sentencias, en un lenguaje próximo a la


máquina

• Secuencia: Serie de instrucciones o pasos que se ejecutan uno detrás de otro


• Flujo: La secuencia de ejecución de un algoritmo
• Control del flujo: Mecanismo que permite modificar el flujo de ejecución en
función de los datos

Programación 2020-2021
Control de flujo

• Lineal: por defecto, JVM ejecuta las sentencias en el orden en el que fueron
escritas.

• Alternativas o Condicionales: selectivamente se ejecutan algunas sentencias


dependiendo del valor de condiciones: if , if…else, if…else if…, switch, y
estructuras anidadas

• Bucles: el programa ejecuta sentencias de manera repetitiva mientras cierta


condición sea verdadera. for, while, do…while

Programación 2020-2021
Ejecución lineal

• Sentencias de expresión
• Expresión de asignación
• Formas prefijas y postfijas (e.g., ++ y - -)
• Llamadas a métodos
• Expresiones de creación de objetos

Programación 2020-2021
Ejercicio

• Escribir un programa que, dado un número


entero, imprima por pantalla si el número
es positivo

Programación 2020-2021
Estructura alternativa simple

if ( condición ) <sentencia>;
false
Condición
if ( condición ) {

true
<bloque>

} Instrucciones

Programación 2020-2021
Solución

Programación 2020-2021
Condición

• La condición es una expresión lógica, cuya evaluación por el compilador sólo


puede tomar dos valores: false o true

• La condición puede tomar la forma de:


• Variable boolean
• Operadores relacionales o lógicos
• Compuesta
• Llamada a un método que devuelve un valor booleano

Programación 2020-2021
Errores comunes

• Olvidar los paréntesis izquierdo y/o derecho de la condición.


• Confundir el operador de igualdad, ==, con el operador de asignación, =
• ==, !=, <=, >=: estos operadores no pueden contener espacios entre los
símbolos. = = es un error de sintaxis!

• Dar la vuelta al operador !=, <=, >=, como en =!, =<, =>
• Poner un ; después del paréntesis derecho de la condición

Programación 2020-2021
Ejercicio

• Escribir un programa que, dado un número


entero, imprima por pantalla si el número
es par o impar

Programación 2020-2021
Estructura alternativa doble

if ( condición ) {
true false
Condición
<bloque if>

} else {

bloque if bloque else


<bloque else>

Programación 2020-2021
Solución

Programación 2020-2021
Ejercicio

• Escribir un programa que, dado un número


entero, imprima por pantalla el día de la
semana correspondiente al número
(Domingo para el número 1, Lunes para el
2, …)

Programación 2020-2021
Estructura alternativa multiple en cadena
if ( condición ) {

true
<bloque if 1>

} else if ( condición ) {
false

<bloque else if 2>


true

} else if ( condición ) {

false
<bloque else if 3>

true
} else {

<bloque else>
false

}
Solución

Programación 2020-2021
Estructura alternativa multiple switch
Util para sentencias múltiples con condiciones ==

switch (expresión_de_tipo_entera_o_cadena) {
case valor1: [sentencia_1_1;]
[sentencia:1_2;]

[break;]
case valor2: [sentencia_2_1;]
...
[break;]
...
case valorN: [sentencia_N_1;]

[break;]
[default: [sentencia_D_1;]

Programación 2020-2021
Instrucción condicional: switch

• El tipo de la expresión debe ser entera (int, short, byte, char) o, desde Java7, cadenas de
caracteres (String). No puede ser un valor lógico porque los valores true y false no tienen su
correspondiente numérico

• Los valores de la selección múltiple (valor1, valor2,…) tienen que ser constantes, se evalúan
en tiempo de compilación

• Si la expresión de tipo toma el valor1 se ejecutan las sentencias_1_X, si toma el valor2 se


ejecutan las sentencias_2_X, etc.

• Si no toma ninguno de los valores indicados y se pone el bloque default (que es opcional) se
ejecutarán las instrucciones del mismo

• El break termina la ejecución del bloque switch. Si alguna de las opciones no contiene el
break correspondiente, la ejecución prosigue con las sentencias del siguiente case

Programación 2020-2021
Solución del ejercicio anterior con switch

Programación 2020-2021
Estructura alternativa anidada true
Condición

bloque
if ( condición ) {

if externo
<bloque if externo>
false

if ( condición ) {
true
Condición
<bloque if anidado>

}
bloque false
if anidado
<bloque if externo>

bloque
} [else] {
if externo

}
Sentencia if anidadas

• Dentro de la cláusula if o else puede haber otras estructuras alternativas: por


ejemplo otros if o if…else

if (x >= 30) {
if (x < 100) {
System.out.println("x está entre 30 y 100");
}
} else {
System.out.println("x es menor de 30");
}

Programación 2020-2021
¿Qué hace este código?

if (x > 5)

if (y > 5)

System.out.println("x e y son mayores de 5");

else

System.out.println("x es <= 5");

Programación 2020-2021

También podría gustarte