以下是原文翻译成繁體中文的內容:

PL/SQL - Loops

# PL/SQL - 迴圈:您進行高效編程的入口

你好,未來的編程超新星!今天,我們將踏上一段令人興奮的旅程,進入 PL/SQL 迴圈的世界。作為你們友好的鄰居電腦老師,我將指導你們進行這次冒險,一步步地。所以,請繫好安全帶,我們一起跳水吧!

## 了解迴圈:基礎知識

在我們深入細節之前,讓我們先了解迴圈是什麼。想像一下,你被要求在黑板上寫 100 遍「我愛編程」。這聽起來很無聊,對吧?這就是迴圈拯救我們的地方!它們讓我們能夠重複執行一組指令而不需要重複寫入同樣的代碼。

在 PL/SQL 中,我們有三種主要的迴圈類型:

1. LOOP
2. FOR LOOP
3. WHILE LOOP

讓我們詳細探討每一種。

### 1. 簡單的 LOOP

簡單的 LOOP 就像一隻堅持不懈的小狗追著自己的尾巴——它會不斷地繞圈子直到你告訴它停止。這是它的樣子:

```sql
LOOP
    -- 在這裡寫入你的代碼
    EXIT WHEN 條件;
END LOOP;

讓我們看一個實際的例子:

DECLARE
    v_counter NUMBER := 1;
BEGIN
    LOOP
        DBMS_OUTPUT.PUT_LINE('迴圈迭代:' || v_counter);
        v_counter := v_counter + 1;
        EXIT WHEN v_counter > 5;
    END LOOP;
END;

在這個例子中,我們正在打印迴圈的迭代號。這個迴圈會繼續直到我們的計數器超過 5。這就像數羊入睡,但我們在 5 止步,因為我們是高效的編程員,而不是失眠者!

2. FOR LOOP

FOR LOOP 就像一個組織有序的導遊。它知道需要重複多少次,並且會自動停止。這是語法:

FOR counter IN [REVERSE] lower_bound..upper_bound LOOP
    -- 在這裡寫入你的代碼
END LOOP;

讓我們看看它在行動:

BEGIN
    FOR i IN 1..5 LOOP
        DBMS_OUTPUT.PUT_LINE('迭代 ' || i || ':我愛 PL/SQL!');
    END LOOP;
END;

這個迴圈會打印 "我愛 PL/SQL!" 五次,每次都帶有它的迭代號。這就像設定一個目標,每天稱讚 PL/SQL 五次——可達成且具體!

3. WHILE LOOP

WHILE LOOP 就像一個謹慎的駕駛員。它在每次迭代之前檢查條件。這是它的工作方式:

WHILE 條件 LOOP
    -- 在這裡寫入你的代碼
END LOOP;

讓我們看一個例子:

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('總和:' || v_sum || ',計數器:' || v_counter);
        v_counter := v_counter + 1;
    END LOOP;
END;

這個迴圈會累加數字(1, 2, 3, ...)直到總和超過 10。這就像填滿一個存錢罐直到你有足夠的錢買那個閃亮的全新小玩意!

為 PL/SQL 迴圈標籤

現在,讓我們來談談為迴圈標籤。這就像給你的迴圈寵物取一個名字——它幫助你更好地識別和控制它,特別是當你有嵌套迴圈時。這是如何為迴圈標籤:

<<loop_label>>
LOOP
    -- 在這裡寫入你的代碼
END LOOP loop_label;

這裡有一個帶有嵌套迴圈的例子:

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

在這個例子中,當 i=2 和 j=2 時,我們退出外層迴圈。這就像一個遊戲,其中有嵌套的俄羅斯套娃,但我們決定在 halfway 中止打開它們!

迴圈控制語句

迴圈控制語句就像你迴圈車輛的方向盤。它們幫助你導航迴圈的執行。讓我們看看主要的語句:

語句 描述
EXIT 立即退出迴圈
EXIT WHEN 当條件為真時退出迴圈
CONTINUE 跳過當前迭代的剩餘部分並移動到下一個
CONTINUE WHEN 当條件為真時跳過當前迭代的剩餘部分

這裡有一個使用這些控制語句的例子:

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

        -- 跳過奇數
        CONTINUE WHEN MOD(v_counter, 2) != 0;

        DBMS_OUTPUT.PUT_LINE('偶數:' || v_counter);

        -- 當我們達到 10 時退出
        EXIT WHEN v_counter = 10;
    END LOOP;
END;

這個迴圈打印從 2 到 10 的偶數。這就像一個挑食者穿梭在自助餐中——跳過看起來奇怪的菜餚並在他們飽了時停止!

結論

這就是你們,夥伴們!我們已經在 PL/SQL 迴圈的世界中繞了一圈。記住,迴圈是你編程工具包中的強大工具。它們幫助你自動化重複任務,高效處理數據,並使你的代碼更優雅。

當你練習時,你會發現自己對這些概念越來越熟悉。不要害怕嘗試——這是我們所有人學習和成長為編程員的方式。誰知道呢?也許有一天你會發現自己在睡夢中寫迴圈(但願不是,為了你的床單)!

繼續編程,繼續學習,最重要的是,繼續在 PL/SQL 中玩得開心!

Credits: Image by storyset