Vous êtes sur la page 1sur 13

EXPRESIONES Y CONTROL DE FLUJO

EXPRESIONES
Una expresión es un conjunto o combinación de valores y operaciones que al ser evaluados
retornan un resultado.
TIPOS DE EXPRESIONES
Mientras que una expresión frecuentemente produce un resultado, no siempre lo hace. Hay
tres tipos de expresiones en Java.
 Los que producen un valor, es decir, el resultado de (1 + 1)
 Los que asignan una variable, por ejemplo (v = 10)
 Aquellos que no tienen resultado pero que pueden tener un "efecto secundario"
porque una expresión puede incluir una amplia gama de elementos tales como
invocaciones de métodos u operadores de incrementos que modifican el estado (es
decir, la memoria) de un programa.
CONTROL DE FLUJO
El termino flujo de control se refiere al orden en que se ejecutan las sentencias del
programa. Otros términos utilizados son secuenciación y control de flujo. El término
secuencial significa que las sentencias se ejecutan en secuencia, una después de otra, en el
orden que se sitúan dentro del programa. Las estructuras de selección, repetición e
invocación permiten que el flujo secuencial del programa sea modificado en un modo
preciso y definido con anterioridad. Como se puede deducir fácilmente, las estructuras de
selección se utilizan para seleccionar cuáles sentencias se han de ejecutar a continuación y
las estructuras de repetición (repetitivas o iterativas) se utilizan para repetir un conjunto de
sentencias.
ESTRUCTURA_SECUENCIAL
Una estructura secuencial es aquella en la que una acción (instrucción) sigue a otra secuencia.
Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el final del proceso. La estructura secuencial tiene entrada y una salida.
Ejemplo de programa Java con estructura secuencial: Programa que lee dos números por
teclado y los muestra por pantalla.
ESTRUCTURA_SELECTIVA
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan
denominar también estructuras de decisión o alternativas.
En las estructuras selectivas se evalúa una condición y en función del resultado del misma se
realiza un opción u otra. Las condiciones se especifican usando expresiones lógicas. La
representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then,
else o bien en español si, entonces, si_no), con una figura geométrica en forma de rombo o
bien con un triángulo en el interior de una caja rectangular.
Las estructuras selectivas o alternativas pueden ser simples, dobles o múltiples.
ALTERNATIVA_SIMPLE_SI-ENTONCES_(IF)
La estructura alternativa simple ejecuta una determinada acción cuando se cumple un
determinada condición. La selección si-entonces evalúa la condición y
. Si la condición es verdadera, entonces ejecuta la acción SI ( o acciones en caso de ser SI
una acción compuesta y constar de varias acciones).
. Si la condición es falsa, entonces no hacer nada.
Ejemplo de programa Java con estructura condicional: Programa que pide por teclado la nota
obtenida por un alumno y muestra un mensaje si el alumno ha aprobado.

ALTERNATIVA_DOBLE_SI-ENTONCES-SINO_(IF-ELSE)
La estructura anterior es muy limitada y normalmente se necesitará una estructura que
permita elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no
de una determinada condición. Si la condición es verdadera, se ejecuta la acción SI y, si es
falsa, se ejecuta la acción SINO.
Ejemplo de programa Java que contiene una estructura condicional doble: Programa que lee
la nota de un alumno y muestra si el alumno ha aprobado o no.
ALTERNATIVA_MÚLTIPLE_SEGÚN_SEA,_CASO_DE/CASE_(SWITCH).
Con frecuencia en la práctica es necesario que existan más de dos elecciones posibles. La
estructura de decisión múltiple evaluará una expresión que podrá tomar n valores distintos,
1,2,3,4, …, n. Según que elija uno de estos valores en la condición, se realizará una de las n
acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado camino entre los n
posibles.
Primero se evalúa la expresión y salta al case cuya constante coincida con el valor de la
expresión.
Se ejecutan las instrucciones que siguen al case seleccionado hasta que se encuentra
un break o hasta el final del switch. El break produce un salto a la siguiente instrucción a
continuación del switch.
Si ninguno de estos casos se cumple se ejecuta el bloque default (si existe). No es obligatorio
que exista un bloque default y no tiene porqué ponerse siempre al final, aunque es lo habitual.
Ejemplo de programa Java que contiene una instrucción switch: Programa que lee por teclado
un mes (número entero) y muestra el nombre del mes.
ESTRUCTURAS_DE_DECISIÓN_ANIDADAS(EN_ESCALERA)
Las estructuras de selección si-entonces y si-entonces-si_no implican la selección de una de
dos alternativas. Es posible también utilizar la instrucción SI para diseñar estructuras de
selección que contengan más de dos alternativas. Por ejemplo, una estructura si-entonces
puede contener otra estructura si-entonces, y esta estructura si-entonces puede contener otro,
y así sucesivamente cualquier número de veces; dentro de cada estructura pueden existir
diferentes acciones.
Ejemplo de programa Java que contiene una estructura condicional múltiple: Programa que
lee una hora (número entero) y muestra un mensaje según la hora introducida.
ESTRUCTURAS_REPETITIVAS
Las computadoras están especialmente diseñadas para todas aquellas aplicaciones en las
cuales una operación o conjunto de ellas debe repetirse muchas veces. Un tipo importante de
estructura es el algoritmo necesario para repetir una o varias acciones un número determinado
de veces. Un programa que lee una lista de números puede repetir la misma secuencia de
mensajes al usuario e instrucciones de lectura hasta que todos los números de un fichero se
lean.
Las estructuras que repiten una secuencia de instrucciones un número determinado de veces
se denominan bucles y se denomina iteración al hecho de repetir la ejecución de una
secuencia de acciones. Por ejemplo, supongamos que se desea sumar una lista de números
escritos desde teclado, por ejemplo, calificaciones de los alumnos de una clase. El medio
conocido hasta ahora de leer los números y añadir sus valores a una variable SUMA que
contenga las sucesivas sumas parciales. La variable SUMA se hace igual a cero y a
continuación se incrementa en el valor del número cada vez que uno de ellos se lea, y así
sucesivamente para cada número de la lista. En otras palabras, el algoritmo repite muchas
veces las acciones. Tales opciones repetidas se denominan bucles o lazos. La acción ( o
acciones) que se repite en un bucle se denomina iteración.
ESTRUCTURA_MIENTRAS_(WHILE)
La estructura repetitiva mientras ( en inglés while o dowhile: hacer mientras) es aquella en
que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se
ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición (una
expresión booleana). Si se evalúa false, no se toma ninguna acción y el programa prosigue
en la siguiente instrucción del bucle. Si la expresión booleana es verdadera, entonces se
ejecuta el cuerpo del bucle, después de lo cual se evalúa de nuevo la expresión booleana. Este
proceso se repute una y otra vez mientras la expresión booleana (condición) sea verdadera.
Ejemplo de programa Java que contiene una instrucción while:
Programa que lee números por teclado donde la lectura acaba cuando el número introducido
sea negativo. El programa calcula y muestra la suma de los números leídos.

BUCLES_INFINITOS
Algunos bucles no exigen fin y otros no encuentran fin por error en su diseño. Por ejemplo,
un sistema de reservas de líneas aéreas puede repetir un bucle que permita al usuario añadir
o borrar nuevas reservas. El programa y el bucle corren siempre, o al menos hasta que la
computadora se apaga. En otras ocasiones un bucle no se termina nunca porque nunca se
cumple una condición.
Un bucle que nunca se termina se denomina bucle infinito o sin fin. Los bucles sin fin no
intencionados son perjudiciales para la programación y se deben evitar siempre.
ESTRUCTURA_HACER-MIENTRAS_(DO-WHILE)
Los bucles pre-test se denominan también bucles controlados por la entrada. En numerosas
ocasiones se necesita que el conjunto de sentencias que componen el cuerpo del bucle se
ejecuten al menos una vez sea cual sea el valor de la expresión o condición de evaluación.
Estos bucles se denominan bucles pre-test o bucles post-test o bucles controlados por la
salida. Un caso típico es el bucle hacer-mientras (do-while).
El bucle hacer-mientras se termina de ejecutar cuando el valor de la condición es falsa. La
elección entra un bucle mientras y un bucle hacer-mientras depende del problema de cómputo
a resolver. Por ejemplo si el bucle se utiliza para recorrer una lista de números (o una lista
cualquiera de objetos), la lista puede estar vacía, en cuyo caso las sentencias del bucle nunca
se ejecutarán. Si se aplica un bucle hacer-mientras nos conduce a un código de errores.
Ejemplo de programa Java que contiene una instrucción do while:
Programa que lee un número entero N. El número debe ser menor que 100.
ESTRUCTURA_DESDE/PARA_(FOR)
Un bucle desde(for) se representa con los símbolos de proceso y decisión mediante un
contador.
La estructura DESDE comienza con un valor inicial de la variable índice y las acciones
especificadas se ejecutaran a menos que el valor inicial sea mayor que el valor final. La
variable índice se incrementa en uno y si este nuevo valor no excede al final, se ejecutan de
nuevo las acciones. Por consiguiente las acciones específicas en el bucle se ejecutan para
cada valor de la variable índice desde el valor inicial hasta el valor final con el incremento
de uno en uno.
El incremento de la variable índice siempre es 1 si no se indica expresamente lo contrario.
Dependiendo del tipo de lenguaje, es posible que el incremento sea distinto de uno, positivo
o negativo.
La ejecución de un bucle for sigue los siguientes pasos:
-Se inicializa la variable o variables de control (inicialización)
-Se evalúa la condición.
-Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finaliza la ejecución del
bucle y continúa el programa en la siguiente instrucción después del for.
-Se actualiza la variable o variables de control (incremento/decremento)
-Se vuelve al punto 2
Ejemplo de programa Java que contiene una instrucción for:

BUCLES_ANIDADOS
Bucles anidados son aquellos que incluyen instrucciones for, while o do-while unas dentro
de otras.
Debemos tener en cuenta que las variables de control que utilicemos deben ser distintas.
Los anidamientos de estructuras tienen que ser correctos, es decir, que una estructura anidada
dentro de otra lo debe estar totalmente.

Ejemplo de programa Java con bucles anidados:


SENTENCIAS DE SALTO INTERRUMPIR (BREAK) Y CONTINUAR
(CONTINUE)
SENTENCIA_INTERRUMPIR_(BREAK)
En ocasiones los programadores desean terminar un bucle en un lugar determinado del cuerpo
del bucle en vez de esperar que el bucle termine de modo natural pos su entrada o por su
salida. Un método de conseguir esta acción –siempre utilizada con precaución y con un
control completo del bucle- es mediante la sentencia interrumpir(break) que se utiliza en la
sentencia según_sea(switch).
La sentencia interrumpir se puede utilizar para terminar una sentencia de iteración y cuando
se ejecuta produce que el flujo de control salte fuera a la siguiente sentencia inmediatamente
a continuación de la sentencia de iteración. La sentencia interrumpir se puede colocar en el
interior del cuerpo del bucle para implementar este efecto.
Ejemplo donde usaremos el break será este dónde obtenemos en que día de la semana nos
encontramos (del 1 al 7) y si el día coincide con el contador el bucle ejecuta el break.
El resultado de la ejecución para un jueves seria el siguiente: (Por defecto el primer día de la
semana es el domingo por eso nos dice que el jueves es el 5 y no el 4).

Como se observa, en el momento que se encuentra la sentencia break automáticamente se


sale del bucle y la ejecución continua en la línea siguiente al bucle.
SENTENCIA_CONTINUAR_(CONTINUE)
La sentencia continuar(continue) hace que el flujo de ejecución salte el resto de un cuerpo
del bucle para continuar con el siguiente bucle o iteración. Esta característica suele ser útil
en algunas circunstancias.
La sentencia continuar sólo se puede utilizar dentro de una iteración de un bucle. La sentencia
continuar no infiere con el número de veces que se repite el cuerpo del bucle como sucede
con interrumpir, sino que simplemente influye en el flujo de control en cualquier iteración
específica.
Ejemplo donde usaremos continue será similar al que se usó en el break, pero en este caso en
lugar de detenerse el bucle al llegar al coincidir el día como pasaba con break, lo que se hace
es pasar al día siguiente sin hacer nada.
El resultado de la ejecución para un jueves sería el siguiente:
BIBLIOGRAFIA
IVAN SALAS(2014), SENTENCIAS BREAK Y CONTINUE EN JAVA, Recuperado de
https://programandoointentandolo.com/2014/05/break-y-continue-en-java.html

JOYNES AGUILAR, A, (2008), FUNDAMENTOS DE PROGRAMACIÓN, México D.C,


MC GRAW HILL
JAAZIEL(2013), PROGRAMACIÓN JAVA, Recuperado de
http://puntocomnoesunlenguaje.blogspot.com/2012/04/estructuras-de-control.html

XMEEL(2013), CURSO SOBRE LA POO: ESTRUCTURAS DE CONTROL DE FLUJO,


Recuperado de https://xmeele.wordpress.com/2013/03/19/curso-sobre-la-poo-estructuras-de-
control-de-flujo-condicionales-if-else-switch/

Vous aimerez peut-être aussi