PL/SQL - Les boucles : Votre porte d'entrée vers une programmation efficace

Salut à vous, futurs superstars du codage ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des boucles PL/SQL. En tant que votre professeur d'informatique du quartier, je suis là pour vous guider à travers cette aventure, étape par étape. Alors, bucklez-vous et plongeons dedans !

PL/SQL - Loops

Comprendre les boucles : Les bases

Avant de rentrer dans les détails, comprenons ce que sont les boucles. Imaginez que vous êtes chargé d'écrire "J'aime coder" sur un tableau noir 100 fois. Ça paraît fastidieux, n'est-ce pas ? C'est là que les boucles entrent en jeu ! Elles nous permettent de répéter un ensemble d'instructions plusieurs fois sans avoir à écrire le même code à plusieurs reprises.

En PL/SQL, nous avons trois types principaux de boucles :

  1. LOOP simple
  2. Boucle FOR
  3. Boucle WHILE

Explorons chacun de ces types en détail.

1. La boucle simple

La boucle simple est comme un chien déterminé qui court après sa queue - elle continue de boucler jusqu'à ce que vous lui disiez d'arrêter. Voici à quoi elle ressemble :

LOOP
-- Votre code ici
EXIT WHEN condition;
END LOOP;

Voici un exemple pratique :

DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Itération de boucle : ' || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 5;
END LOOP;
END;

Dans cet exemple, nous affichons le numéro d'itération de la boucle. La boucle continue jusqu'à ce que notre compteur dépasse 5. C'est comme compter des moutons pour s'endormir, mais nous arrêtons à 5 parce que nous sommes des programmeurs efficaces, pas des insomniaques !

2. La boucle FOR

La boucle FOR est comme un guide bien organisé. Elle sait exactement combien de fois elle doit se répéter et s'arrête automatiquement. Voici la syntaxe :

FOR counter IN [REVERSE] lower_bound..upper_bound LOOP
-- Votre code ici
END LOOP;

Voici un exemple en action :

BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Itération ' || i || ': J'aime PL/SQL!');
END LOOP;
END;

Cette boucle affichera "J'aime PL/SQL!" cinq fois, à chaque fois avec son numéro d'itération. C'est comme fixer un objectif de complimenter PL/SQL cinq fois par jour - réalisable et précis !

3. La boucle WHILE

La boucle WHILE est comme un conducteur prudent. Elle vérifie la condition avant de procéder à chaque itération. Voici comment elle fonctionne :

WHILE condition LOOP
-- Votre code ici
END LOOP;

Voici un exemple :

DECLARE
v_sum NUMBER := 0;
v_counter NUMBER := 1;
BEGIN
WHILE v_sum < 10 LOOP
v_sum := v_sum + v_counter;
DBMS_OUTPUT.PUT_LINE('Somme : ' || v_sum || ', Compteur : ' || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;

Cette boucle ajoute des nombres (1, 2, 3, ...) jusqu'à ce que la somme dépasse 10. C'est comme remplir une tirelire jusqu'à ce que vous ayez assez pour ce gadget neuf !

Étiqueter une boucle PL/SQL

Maintenant, parlons des boucles étiquetées. C'est comme donner un nom à votre boucle - cela vous aide à l'identifier et à la contrôler mieux, surtout lorsque vous avez des boucles imbriquées. Voici comment étiqueter une boucle :

<<loop_label>>
LOOP
-- Votre code ici
END LOOP loop_label;

Voici un exemple avec des boucles imbriquées :

<<outer_loop>>
FOR i IN 1..3 LOOP
<<inner_loop>>
FOR j IN 1..3 LOOP
DBMS_OUTPUT.PUT_LINE('Externe : ' || i || ', Interne : ' || j);
IF i = 2 AND j = 2 THEN
EXIT outer_loop;
END IF;
END LOOP inner_loop;
END LOOP outer_loop;

Dans cet exemple, nous quittons la boucle externe lorsque i=2 et j=2. C'est comme un jeu de poupées russes imbriquées, mais nous décidons de ne pas les ouvrir jusqu'au bout !

Les instructions de contrôle de boucle

Les instructions de contrôle de boucle sont comme le volant de votre véhicule boucle. Elles vous aident à naviguer dans l'exécution de votre boucle. Voici les principales :

Instruction Description
EXIT Quitte la boucle immédiatement
EXIT WHEN Quitte la boucle lorsque une condition est vraie
CONTINUE Saute le reste de l'itération actuelle et passe à la suivante
CONTINUE WHEN Saute le reste de l'itération actuelle lorsque une condition est vraie

Voici un exemple utilisant ces instructions :

DECLARE
v_counter NUMBER := 0;
BEGIN
LOOP
v_counter := v_counter + 1;

-- Saute les nombres impairs
CONTINUE WHEN MOD(v_counter, 2) != 0;

DBMS_OUTPUT.PUT_LINE('Nombre pair : ' || v_counter);

-- Quitte lorsque nous atteignons 10
EXIT WHEN v_counter = 10;
END LOOP;
END;

Cette boucle affiche les nombres pairs de 2 à 10. C'est comme un mangeur difficile qui parcourt un buffet - en sautant les plats qui ont l'air bizarre et en arrêtant lorsqu'il est rassasié !

Conclusion

Et voilà, les amis ! Nous avons bouclé dans le monde des boucles PL/SQL. Souvenez-vous, les boucles sont des outils puissants dans votre boîte à outils de programmation. Elles vous aident à automatiser les tâches répétitives, à traiter les données efficacement et à rendre votre code plus élégant.

En pratiquant, vous vous sentirez de plus en plus à l'aise avec ces concepts. N'ayez pas peur d'expérimenter - c'est ainsi que nous apprenons et grandissons en tant que programmeurs. Et qui sait ? Peut-être que vous finirez par écrire des boucles dans votre sommeil (quoique j'espère que non, pour le bien de vos draps de lit) !

Continuez à coder, continuez à apprendre, et surtout, continuez à vous amuser avec PL/SQL !

Credits: Image by storyset