Oracle PL/SQL POUR BOUCLE avec exemple
Qu’est-ce que la boucle For ?
L'instruction «FOR LOOP» est la mieux adaptée 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 situe entre cette plage, la boucle sera exécutée.
La variable de boucle est auto-incrémentale, 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 <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END 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 qui doit être exécuté. La partie exécution peut contenir n'importe quelle instruction d'exécution.
- La variable_boucle est déclarée implicitement lors de l'exécution de la boucle entière, et la portée de cette variable_boucle 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 fonctionner dans l'ordre inverse en ajoutant le mot-clé 'REVERSE' avant lower_limit.
Exemple 1: Dans cet exemple, nous allons imprimer le nombre de 1 à 5 en utilisant l'instruction de boucle FOR. Pour cela, nous exécuterons le code suivant.
BEGIN dbms Qutput.put linef.Prp.gram started.' ); FOR a IN 1 .. 5 LOOP dbms_output.put_line(a); END LOOP: dbms_output.put_iine('Program completed.'); END; /
Explication du code :
- Ligne de code 2: Impression de la déclaration « Programme démarré ».
- Ligne de code 3 : Le mot clé 'FOR' marque le début de la boucle et la variable_boucle 'a' est déclarée. Il aura désormais la valeur allant 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 quittera la boucle.
- Ligne de code 7 : Impression du relevé « Programme terminé »
Boucles imbriquées
Les instructions de boucle peuvent également être imbriquées. Les boucles externe et interne peuvent être de différents types. Dans la boucle imbriquée, pour chaque valeur d'itération de la boucle externe, la boucle interne sera exécutée entièrement.
LOOP -outer <execution block starts> LOOP — inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Explication de la syntaxe :
- Dans la syntaxe ci-dessus, la boucle externe contient une boucle supplémentaire.
- Les boucles peuvent être de n’importe quel type et 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 exécuterons le code suivant.
DECLARE b NUMBER; BEGIN dbms output put line(‘Program started' ); FOR a IN 1..3 LOOP b:=1; WHILE (a>=b) LOOP dbms 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 la déclaration « Programme démarré ».
- Ligne de code 5 : Le mot clé 'FOR' marque le début de la boucle et la variable_boucle 'a' est déclarée. Il aura désormais la valeur allant de 1 à 3
- Ligne de code 7 : Réinitialisation de la valeur de « b » à « 1 » à chaque fois.
- Ligne de code 8 : Inner boucle tout en vérifie la condition a>=b.
- Ligne de code 10 : Imprime la valeur de « a » tant que la condition ci-dessus est satisfaite.
- Ligne de code 14 : Impression du relevé « Programme terminé »
Résumé
boucle | POUR Boucle |
---|---|
Critère de sortie | Quitter lorsque le compteur atteint la limite |
Utilisation | Bon à utiliser lorsque le nombre de boucles à exécuter est connu. |