Saltar al contenido principal
Página

Tema 2.5 - Sentencia CONTINUE, Etiquetas en bucles y Declaración GOTO

Sentencia CONTINUE

Es una instrucción de control que me permite pasar inmediatamente a la siguiente iteración de un ciclo. Solo se puede usar en los ciclos.

Ahora veamos un ejemplo de cómo utilizar esta instrucción.

Ejemplo:

El resultado que imprime en pantalla es:

Vemos que cuando el valor de num es igual a 4, entra a la condición y se ejecuta la instrucción CONTINUE lo que hace que la iteración aumente, haciendo que num ahora sea 5 y volviendo al inicio del ciclo FOR, es por es que no se imprime el valor 4.

Etiquetas en bucles

En PL/SQL se pueden usar etiquetas. La etiqueta se compone por dos símbolos de menor que y dos de mayor que (<< >>) y aparece al inicio de la instrucción LOOP. El nombre de la etiqueta puede estar también al final de la instrucción LOOP. Por último, se puede usar la etiqueta en la sentencia EXIT para salir del bucle.

Ejemplo 1:

Al ejecutar el código anterior, nos muestra el siguiente resultado por pantalla:

Ejemplo 2:

El resultado que se imprime después de ejecutar el código PL/SQL es:

Este código muestra mejor el uso de las etiquetas donde se distingue un bucle externo y uno interno. Cuando se entra en el bucle interno se va imprimiendo el valor del contador y a la vez aumenta en uno dicho valor hasta que llegue a 3 y cumpla la condición de salida puesta en la sentencia EXIT, pero en vez salir del bucle interno, sale es del bucle externo y esto se evidencia debido a que de último nos imprime “Salí de LOOP_1”.

Declaración GOTO

GOTO nos permite hacer un “salto” a una etiqueta que esté en el mismo subprograma.

Nota: No se recomienda usar este tipo de declaración en ningún lenguaje de programación debido a que hace difícil rastrear el flujo de control de un programa, provocando que sea difícil entenderlo y modificarlo.

Restricciones de la declaración GOTO

  1. No se puede transferir el control dentro del manejador de excepciones.
  2. No se puede transferir el control dentro de un IF, CASE, LOOP o sub-bloque.
  3. No puede transferir el control de un IF a otro o de un CASE a otro.
  4. No puede transferir el control de un bloque externo a un bloque interno (sub-bloque).

Ejemplo:

El resultado que se muestra en pantalla es:


Última modificación: lunes, 11 de mayo de 2020, 21:06