Oracle PL / SQL FOR LOOP avec exemple

Table des matières:

Anonim

Qu'est-ce que For Loop?

L'instruction "FOR LOOP" convient mieux lorsque vous souhaitez exécuter un code un nombre de fois connu plutôt que sur la base d'autres conditions.

Dans cette boucle, la limite inférieure et la limite supérieure seront spécifiées et tant que la variable de boucle se trouve entre cette plage, la boucle sera exécutée.

La variable de boucle est auto-incrémentielle, donc aucune opération d'incrémentation explicite n'est nécessaire dans cette boucle. La variable de boucle n'a pas besoin d'être déclarée, car elle est déclarée implicitement.

FOR  in LOOPEND LOOP;
Explication de la syntaxe:
  • Dans la syntaxe ci-dessus, le mot-clé 'FOR' marque le début de la boucle et 'END LOOP' marque la fin de la boucle.
  • La variable de boucle est évaluée à chaque fois avant d'exécuter la partie exécution.
  • Le bloc d'exécution contient tout le code à exécuter. La partie exécution peut contenir n'importe quelle instruction d'exécution.
  • La loop_variable est déclarée implicitement pendant l'exécution de la boucle entière, et la portée de cette loop_variable sera uniquement à l'intérieur de cette boucle.
  • Si la variable de boucle sort de la plage, le contrôle sortira de la boucle.
  • La boucle peut être amenée à fonctionner dans l'ordre inverse en ajoutant le mot-clé 'REVERSE' avant limite_inférieure.

Exemple 1 : Dans cet exemple, nous allons imprimer le nombre de 1 à 5 en utilisant l'instruction de boucle FOR. Pour cela, nous allons exécuter le code suivant.

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;/

Explication du code:

  • Ligne de code 2 : impression de l'instruction "Programme démarré".
  • Ligne de code 3: Le mot - clé 'FOR' marque le début de la boucle et loop_variable 'a' est déclaré. Il aura maintenant la valeur de 1 à 5
  • Ligne de code 5: imprime la valeur de «a».
  • Ligne de code 6: le mot - clé 'END LOOP' marque la fin du bloc d'exécution.
  • Le code de la ligne 5 continuera à s'exécuter jusqu'à ce que 'a' atteigne la valeur 6, car la condition échouera et le contrôle sortira de la boucle.
  • Ligne de code 7: Impression de la déclaration «Programme terminé»

Boucles imbriquées

Les instructions de boucle peuvent également être imbriquées. Les boucles externe et interne peuvent être de types différents. Dans la boucle imbriquée, pour chaque valeur d'itération de la boucle externe, la boucle interne sera entièrement exécutée.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Explication de la syntaxe:
  • Dans la syntaxe ci-dessus, la boucle externe contient une autre boucle.
  • Les boucles peuvent être de n'importe quel type et la partie de la fonctionnalité d'exécution est la même.

Exemple 1 : Dans cet exemple, nous allons imprimer le nombre de 1 à 3 en utilisant l'instruction de boucle FOR. Chaque numéro sera imprimé autant de fois que sa valeur. Pour cela, nous allons exécuter le code suivant.

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;/

Explication du code:

  • Ligne de code 2 : déclaration de la variable «b» comme type de données «NUMBER».
  • Ligne de code 4 : impression de l'instruction "Programme démarré".
  • Ligne de code 5: Le mot - clé 'FOR' marque le début de la boucle et loop_variable 'a' est déclaré. Il aura maintenant la valeur de 1 à 3
  • Ligne de code 7: réinitialisation de la valeur de «b» à «1» à chaque fois.
  • Ligne de code 8: La boucle while interne vérifie la condition a> = b.
  • Ligne de code 10: imprime la valeur de «a» tant que la condition ci-dessus est remplie.
  • Ligne de code 14: Impression de l'instruction "Programme terminé"

Résumé

Boucle Boucle FOR
Critère de sortie Quitter lorsque le compteur atteint la limite
Usage Bon à utiliser lorsque le nombre de boucles à exécuter est connu.