ESTRUCTURAS DE CONTROL - · PDF fileEn lenguajes de programación, ... como por ejemplo...

14
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 a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else y Select- Case) Ejecutar un grupo de sentencias mientras exista una condición (Do-While) Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until) Ejecutar un grupo de sentencias un número determinado de veces (For-Next) Etc Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en : secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite 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. Control de Flujo con Java Al igual que otros lenguajes, Java tiene sentencias de control de flujo y su sintaxis es muy similar al del lenguaje C. Por lo tanto estas sentencias de flujo siguen el teorema de la programación estructurada, conocido también como el teorema de Böhm y Jacopini que dice: Un programa propio puede ser escrito utilizando únicamente tres tipos de estructuras de control de secuencia: Secuencial Selectiva Repetitiva Hay que recordar que un programa propio es aquel que cumple las propiedades de tener un solo punto de entrada y uno de salida, donde toda sentencia (instrucción) del algoritmo es accesible, esto es, existe al menos un camino que va desde el inicio hasta el fin del algoritmo, se puede seguir y pasa a través de dicha sentencia y no tiene ciclos o bucles infinitos 1.1 Flujo secuencial La estructura secuencial es trivial, esto es, una concatenación de instrucciones o sentencias de principio a fin Mas información enhttp://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Estructuras_de_control

Transcript of ESTRUCTURAS DE CONTROL - · PDF fileEn lenguajes de programación, ... como por ejemplo...

Page 1: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

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 a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else y Select-Case)

Ejecutar un grupo de sentencias mientras exista una condición (Do-While) Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until) Ejecutar un grupo de sentencias un número determinado de veces (For-Next) Etc

Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en : secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite 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. Control de Flujo con Java Al igual que otros lenguajes, Java tiene sentencias de control de flujo y su sintaxis es muy similar al del lenguaje C. Por lo tanto estas sentencias de flujo siguen el teorema de la programación estructurada, conocido también como el teorema de Böhm y Jacopini que dice: Un programa propio puede ser escrito utilizando únicamente tres tipos de estructuras de control de secuencia:

Secuencial Selectiva Repetitiva

Hay que recordar que un programa propio es aquel que cumple las propiedades de tener un solo punto de entrada y uno de salida, donde toda sentencia (instrucción) del algoritmo es accesible, esto es, existe al menos un camino que va desde el inicio hasta el fin del algoritmo, se puede seguir y pasa a través de dicha sentencia y no tiene ciclos o bucles infinitos 1.1 Flujo secuencial

La estructura secuencial es trivial, esto es, una concatenación de instrucciones o sentencias de principio a fin

Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Estructuras_de_control

Page 2: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.2 Selectiva simple

Hay de tres variantes de la estructura de control de flujo selectiva; la estructura selectiva simple, la doble y la múltiple. Estructura de control de flujo selectiva simple

Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Estructuras_de_selecci%C3%B3n 1.2.1 La sentencia if El siguiente diagrama nos da la sintaxis de la instrucción if, de decisión simple, entre paréntesis se pone la expresión la cual debe dar un valor booleano true o false , ( en Java la expresión debe dar un valor de verdad false o true, no es como en lenguaje C que la expresión puede dar cero y se toma como falso y un valor diferente de cero como verdadero ), si es true la expresión es verdadera, entonces se realiza el conjunto de sentencias, pero si es false se transfiere el control de flujo después de la llave que cierra el ámbito del bloque if. SINTAXIS: if (expresion) { Sentencia(s) }

Page 3: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.2 Selectiva doble

A continuación vamos a analizar la estructura selectiva doble o también conocida como if - else . Veamos el siguiente figura:

Page 4: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.3.1 La sentencia if-else El siguiente diagrama nos da la sintaxis de la instrucción if-else, de decisión doble, entre paréntesis se pone la expresión la cual debe dar un valor booleano true o false . Si es true la expresión es verdadera, entonces se realiza el primer conjunto de sentencias, pero si es false se transfiere el control de flujo al segundo bloque de sentencias correspondente al else. SINTAXIS: if (EXPRESIÓN) { SENTENCIA(S) } else { SENTENCIA(S) }

Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_if-else http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Operador_if-else

Page 5: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.3 Selectiva múltiple

La última variante de la estructura de control de flujo selectiva; la estructura selectiva múltiple , utilizada para múltiples alternativas. Como veremos se utiliza el if else-if ... else-if else y el switch - case. Como veremos, utilizamos el if múltiple cuando los valores que toma una variable que se quiere determinar en la expresión booleana son continuos, y en el caso del switch - case cuando los valores de expresión booleana son discretos. 1.4.1 La sentencia if else-if ... else-if else El siguiente diagrama nos da la sintaxis de la instrucción if else-if ... else-if else, de decisión múltiple. ( también conocidos como if encadenados ). Entre paréntesis se pone la expresión1 la cual debe dar un valor booleano true o false , si es true la expresión1 es verdadera, entonces se realiza el primer conjunto de sentencias, pero si es false se transfiere el control de flujo al primer else-if para evaluar la expresión2. Si esta es true entonces se ejecutan el segundo conjunto de sentencias , pero si es false entonces se transfiere el control del flujo al siguiente else-if, y así sucesivamente hasta llegar al último else-if. En caso de que ninguno de los if y else-if fueran true se ejecutará el último conjunto de sentencias dentro del bloque else, el cual garantiza que por lo menos algo se hará si ninguno fue verdadero.

SINTAXIS: if ( EXPRESION 1){ SENTENCIA(S)

} else if (EXPRESION 2){ SENTENCIA(S)

} else if (EXPRESION 3){ SENTENCIA(S)

} else if (EXPRESION 4){ SENTENCIA(S)

}

Page 6: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador
Page 7: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.4 Ciclo while

Estructura de control de flujo while ( mientras ), es una estructura de repetición o iteración.

1.5.1 La sentencia while El siguiente diagrama nos muestra la sintaxis del ciclo repetitivo while, el cual funciona así: primeramente se evalúa la expresión, si es true se ejecuta el bloque o conjunto de sentencias hasta que de lo contrario si la expresión es false se transfiere el control después de la llave que cierra el bloque de instrucciones. Debido a que la evaluación de la instrucción se hace al principio, el conjunto o bloque de sentencias puede no ejecutarse ni una sola vez. SINTAXIS: while(EXPRESION) { SENTENCIAS }

Page 8: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_while 1.5 Ciclo do-while

La estructura de control de flujo do-while (Repetir-hasta) es otra de las estructuras de repetición que se usan frecuentemente.

Page 9: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.6.1 La sentencia do-while En el siguiente diagrama se muestra la sintaxis del ciclo repetitivo do-while, el cual funciona así: primeramente se ejecuta el bloque o conjunto de sentencias por lo menos una vez desde el do hasta el while donde lleva a cabo la evaluación la expresión , si es true se vuelve a repetir el ciclo y a ejecutar por segunda vez el bloque de sentencias, si de lo contrario la expresión es false se transfiere el control después del punto y coma ( ; ) que es el separador de sentencias e indicador del final del ciclo. SINTAXIS: do { SENTENCIA(S) } while(EXPRESIÓN);

Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_do-while

Page 10: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.6 Ciclo for Estructura de control de flujo for ( Para ) es ampliamente utilizada como estructura de control de flujo de ciclo cuando sabemos de antemano cuantas ciclos o iteraciones queremos.

Page 11: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.7.1 La sentencia for En el siguiente diagrama se muestra la sintaxis del ciclo repetitivo for, el cual funciona así: primeramente se ejecuta la expresión1 ( que es la parte de inicialización de las variables contador del ciclo o donde se asignan valores iniciales a los contadores ), después se evalúa pro primera vez la expresión2 que es booleana y si da true entonces se ejecuta el bloque de sentencias, pero si da false entonces se finaliza el ciclo transfiriéndose el control de flujo después de la llave que cierra el bloque. Se preguntará ¿ Cuándo se evalúa la expresion3 ? , esta se evalúa primeramente en la segunda pasada o en la segunda iteración, y posteriormente se pasa a evaluar de nuevo la expresión2, después se vuelve a hacer la prueba lógica de la expresión2 y así sucesivamente hasta que la expresión2 sea false. Observe en el diagrama que la expresión1 solo se evalúa una vez ( en la inicialización ). SINTAXIS: for(EXPRESION1;EXPRESIÓN2;EXPRESION3) { SENTENCIA(S) }

Más información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_for

Page 12: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.7 Sentencia switch

La estructura de control de flujo selectiva múltiple, para el caso de varias alternativas ; Como vimos a veces se utiliza el if else-if ... else-if else y el switch-case. Aquí veremos, que se utiliza el switch-case cuando la expresión que se quiere determinar arroja valores que son discretos para cada caso que se quiera evaluar.

1.8.1 La sentencia switch En el siguiente diagrama se muestra la sintaxis de la sentencia switch y como podemos ver primeramente se evalúa la expresión expr que esta dentro del paréntesis; después dependiendo de el valor si es el caso de que valga c1 entonces se efectúa el bloque del primer conjunto de sentencias hasta su rompimiento con la instrucción break la cual transfiere el control del flujo hasta después de la última llave que cierra la sentencia switch. El uso de break es importante porque si se omite se pasa a hacer el segundo , tercero, etc., bloques de instrucciones. Dependiendo del valor de expr, si es c2, ejecutaría el segundo bloque de sentencias, si el valor de expr fuera c3 ejecutaría el tercer bloque de sentencias y así sucesivamente hasta los cn valores posibles de expr.

Page 13: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

SINTAXIS:

switch ( EXPRESION ) {

case 1 : SENTENCIA(S);

break; case 2 :

SENTENCIA(S); break; case n :

SENTENCIA(S); break; }

Page 14: ESTRUCTURAS DE CONTROL -  · PDF fileEn lenguajes de programación, ... como por ejemplo los comandos guardados. ... ( que es la parte de inicialización de las variables contador

1.8.2 La sentencia switch con default En el siguiente diagrama se muestra la sintaxis de la sentencia switch-default y como podemos es una variante de la sentencia switch. La diferencia estriba en el uso de una alternativa que se puede dar por omisión. El uso de default es importante porque si expr no coincide con ninguno de los valores c1, ni c2, ... , cn entonces se ejecutan las sentencias del bloque default hasta el break que trasfiere el control de flujo después de la llave que cierra de la sentencia switch.

SINTAXIS:

switch ( EXPRESION ) {

case 1 : SENTENCIA(S);

break; case 2 :

SENTENCIA(S); break; case n :

SENTENCIA(S); break; default :

SENTENCIA(S); break; } Mas información en… http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Sentencia_switch