Oracle PL / SQL FOR LOOP con ejemplo

Tabla de contenido:

Anonim

¿Qué es For Loop?

La instrucción "FOR LOOP" es más adecuada cuando desea ejecutar un código durante un número conocido de veces en lugar de basarse en otras condiciones.

En este ciclo, se especificarán el límite inferior y el límite superior y, siempre que la variable del ciclo esté entre este rango, se ejecutará el ciclo.

La variable de ciclo es autoincremental, por lo que no se necesita ninguna operación de incremento explícito en este ciclo. No es necesario declarar la variable de bucle, ya que se declara implícitamente.

FOR  in LOOPEND LOOP;
Explicación de la sintaxis:
  • En la sintaxis anterior, la palabra clave 'FOR' marca el comienzo del bucle y 'END LOOP' marca el final del bucle.
  • La variable de bucle se evalúa cada vez antes de ejecutar la parte de ejecución.
  • El bloque de ejecución contiene todo el código que debe ejecutarse. La parte de ejecución puede contener cualquier declaración de ejecución.
  • El loop_variable se declara implícitamente durante la ejecución de todo el ciclo, y el alcance de este loop_variable estará solo dentro de este ciclo.
  • Si la variable del ciclo salió del rango, entonces el control saldrá del ciclo.
  • Se puede hacer que el ciclo funcione en el orden inverso agregando la palabra clave 'REVERSE' antes de lower_limit.

Ejemplo 1 : En este ejemplo, imprimiremos el número del 1 al 5 usando la instrucción de bucle FOR. Para eso, ejecutaremos el siguiente código.

BEGINdbms Qutput.put linef.Prp.gram started.' );FOR a IN 1… 5LOOPdbms_output.put_line(a);END LOOP:dbms_output.put_iine('Program completed.');END;/

Explicación del código:

  • Línea de código 2 : Impresión de la declaración "Programa iniciado".
  • Línea de código 3: La palabra clave 'FOR' marca el comienzo del bucle y se declara la variable loop_variable 'a'. Ahora tendrá el valor a partir de 1 a 5
  • Línea de código 5: imprime el valor de 'a'.
  • Línea de código 6: La palabra clave 'END LOOP' marca el final del bloque de ejecución.
  • El código de la línea 5 continuará ejecutándose hasta que 'a' alcance el valor 6, ya que la condición fallará y el control SALIRÁ del bucle.
  • Línea de código 7: Impresión de la declaración "Programa completado"

Bucles anidados

Las declaraciones de bucle también se pueden anidar. El bucle exterior e interior pueden ser de diferentes tipos. En el ciclo anidado, por cada valor de iteración del ciclo exterior, el ciclo interior se ejecutará por completo.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Explicación de la sintaxis:
  • En la sintaxis anterior, el bucle exterior tiene un bucle más en su interior.
  • Los bucles pueden ser de cualquier tipo y la parte de la funcionalidad de ejecución es la misma.

Ejemplo 1 : En este ejemplo, imprimiremos el número del 1 al 3 usando la instrucción de bucle FOR. Cada número se imprimirá tantas veces como su valor. Para eso, ejecutaremos el siguiente código.

DECLAREb NUMBER;BEGINdbms output put line(‘Program started' );FOR a IN 1… 3LOOPb:=1;WHILE (a>=b)LOOPdbms output put line(a);b:=b+1;END LOOP;‭ END LOOP;‭ ‬dbms_output.put_line('Program completed' );END;/

Explicación del código:

  • Línea de código 2 : Declarar la variable 'b' como tipo de datos 'NUMBER'.
  • Línea de código 4 : Impresión de la declaración "Programa iniciado".
  • Línea de código 5: La palabra clave 'FOR' marca el comienzo del bucle y se declara la variable loop_variable 'a'. Ahora tendrá el valor a partir de 1 a 3
  • Línea de código 7: restableciendo el valor de 'b' a '1' cada vez.
  • Línea de código 8: El bucle while interno verifica la condición a> = b.
  • Línea de código 10: Imprime el valor de 'a' siempre que se cumpla la condición anterior.
  • Línea de código 14: Impresión de la declaración "Programa completado"

Resumen

Lazo En bucle
Criterio de salida Salir cuando el contador llegue al límite
Uso Es bueno usarlo cuando se conoce el recuento de bucles a ejecutar.