Estructuras de control
En lenguajes de programación, 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 con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)
- De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Switch-Case)
- Ejecutar un grupo de sentencias solo cuando 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)
Todas las estructuras de control tienen un único punto de entrada. Las estructuras de control se pueden clasificar en: secuenciales, iterativas y de control avanzadas. Esta es una de las cosas que permiten que la programación se rija por los principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura.
Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.
Tipos de estructuras de control
[editar | editar código]Algunas estructuras de control en el lenguaje Java.
Antecedentes
[editar | editar código]El término "estructuras de control" viene del campo de la ciencia computacional. Cuando se presentan implementaciones de Java para las estructuras de control, nos referimos a ellas con la terminología de la Especificación del lenguaje Java, que se refiera a ella como instrucciones modernas.
Ejecución secuencial
[editar | editar código]Por lo general, las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial,
Transferencia de control
[editar | editar código]En Java, como en otros lenguajes de programación por excelencia como C y C++, el programador puede especificar que la siguiente instrucciones a ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita esta instrucción.[1]
Estructura de control
[editar | editar código]Las estructuras de control, denominadas también sentencias de control, permiten tomar decisiones y realizar un proceso repetidas veces. Se trata de estructuras muy importantes, ya que son las encargadas de controlar el flujo de un programa.
De selección
[editar | editar código]Las estructuras de control de selección ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina según se cumpla o no una condición.
Selección if simple
[editar | editar código]IF (condición 1) THEN
(operación 1)
ELSEIF (condición 2) THEN
(operación 2)
ELSEIF (condición 3) THEN
(operación 3)
...
ELSEIF (condición n) THEN
(operación n)
ELSE
(operación z)
END IFSelect-Case
[editar | editar código]Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a if then else cuando se compara la misma expresión con diferentes valores.
- Se evalúa la expresión, dando como resultado un número.
- Luego, se recorren los "Case" dentro de la estructura buscando que el número coincida con uno de los valores.
- Es necesario que coincidan todos sus valores.
- Cuando se encuentra la primera coincidencia, se ejecuta el bloque de sentencias correspondiente y se sale de la estructura Select-Case.
- Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el bloque de sentencias de la sección "Case Else".
SELECT CASE (Expresión)
CASE Valor1
(Bloque de sentencias 1)
CASE Valor2
(Bloque de sentencias 2)
CASE Valor n
(Bloque de sentencias n)
CASE ELSE
(Bloque de sentencias "Else")
END SELECTEstructuras de control iterativas
[editar | editar código]Las estructuras de control iterativas o de repetición, inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una condición. que también puede expresarse:
while-wend
[editar | editar código]El bucle de repetición fundamental es while-wend, cualquier otro bucle puede ser implementado con este bucle, la condición se comprueba al inicio del bucle si es verdadera, se realizan las instrucciones del cuerpo del bucle.
WHILE (Condición)
(Bloque de sentencias)
WENDDo-While
[editar | editar código]Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque, equivalente a while-wend.
DO WHILE (Condición)
(Bloque de sentencias)
LOOPDo-until
[editar | editar código]Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera que se comprueba al final del bucle.
DO
(Bloque de sentencias)
LOOP UNTIL (Condición)For-Next
[editar | editar código]La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces.
- Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.
- La variable del bucle recorrerá los valores desde el número dado por la expresión 1 hasta el número dado por la expresión 2.
- El bloque de sentencias se ejecutará en cada uno de los valores que tome la variable del bucle.
FOR (Variable) = (Expresión1) TO (Expresión2) STEP (Salto)
(Bloque de sentencias)
NEXTEstructuras anidadas
[editar | editar código]Las estructuras de control básicas pueden anidarse; es decir, pueden ponerse una dentro de otra.
Estructura For-Next dentro de una estructura If-Then-Else
[editar | editar código] IF A > B THEN
FOR X = 1 To 5
(Bloque de sentencias 1)
NEXT
ELSE
(Bloque de instrucciones 2)
END IFEstructura If-Then-Else dentro de estructura For-Next
[editar | editar código] FOR x = 11 TO 20 step 2
IF A == C THEN
(Bloque de instrucciones)
ELSE
(Bloque de instrucciones)
END IF
NEXTEstructura For-Next que está dentro de estructura Do-While
[editar | editar código] DO WHILE A > 0
FOR X = 1 TO 10
(Bloque de instrucciones)
NEXT
A = A - 1
LOOPVéase también
[editar | editar código]- Teorema del programa estructurado
- Programación estructurada
- Diagrama Nassi-Shneiderman
- Dinámica de sistemas
- Bloque de código
- Bucle (programación)
- Lenguaje de programación
Referencias
[editar | editar código]- ↑ Edsger Dijkstra (marzo de 1968). «Go To Statement Considered Harmful» (PDF). Communications of the ACM 11 (3): 147-148. doi:10.1145/362929.362947. «The unbridled use of the go to statement has as an immediate consequence that it becomes terribly hard to find a meaningful set of coordinates in which to describe the process progress. ... The go to statement as it stands is just too primitive, it is too much an invitation to make a mess of one's program.»