PL/SQL - Vòng lặp: Cửa ngõ dẫn đến lập trình hiệu quả

Xin chào các siêu sao lập trình tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của các vòng lặp PL/SQL. Là người giáo viên máy tính hàng xóm thân thiện của bạn, tôi ở đây để hướng dẫn bạn qua chuyến phiêu lưu này, từng bước một. Hãy thắt dây an toàn và cùng nhau lặn sâu vào!

PL/SQL - Loops

Hiểu về vòng lặp: Cơ bản

Trước khi chúng ta nhảy vào chi tiết, hãy hiểu về vòng lặp là gì. Hãy tưởng tượng bạn được giao nhiệm vụ viết "Tôi yêu lập trình" lên bảng đen 100 lần. Đ听起来 có vẻ nhàm chán, phải không? Đó là lúc vòng lặp đến để cứu giúp! Chúng cho phép chúng ta lặp lại một bộ hướng dẫn nhiều lần mà không cần viết cùng một mã nhiều lần.

Trong PL/SQL, chúng ta có ba loại vòng lặp chính:

  1. Vòng lặp đơn giản (LOOP)
  2. Vòng lặp FOR
  3. Vòng lặp WHILE

Hãy cùng khám phá từng loại này chi tiết.

1. Vòng lặp đơn giản (LOOP)

Vòng lặp đơn giản giống như một chú chó quyết tâm đuổi theo đuôi mình - nó cứ tiếp tục vòng vòng cho đến khi bạn bảo nó dừng lại. Dưới đây là cách nó trông như thế nào:

LOOP
-- Mã của bạn ở đây
EXIT WHEN điều_kiện;
END LOOP;

Hãy xem một ví dụ thực tế:

DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Vòng lặp iteration: ' || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 5;
END LOOP;
END;

Trong ví dụ này, chúng ta đang in số lần lặp của vòng lặp. Vòng lặp tiếp tục cho đến khi bộ đếm vượt quá 5. Đó như thể đếm cừu để ngủ, nhưng chúng ta dừng lại ở 5 vì chúng ta là những nhà lập trình hiệu quả, không phải là người mất ngủ!

2. Vòng lặp FOR

Vòng lặp FOR giống như một hướng dẫn viên tổ chức tốt. Nó biết chính xác số lần cần lặp lại và tự động dừng lại. Dưới đây là cú pháp:

FOR bộ đếm IN [REVERSE] lower_bound..upper_bound LOOP
-- Mã của bạn ở đây
END LOOP;

Hãy xem nó trong hành động:

BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Iteration ' || i || ': Tôi yêu PL/SQL!');
END LOOP;
END;

Vòng lặp này sẽ in "Tôi yêu PL/SQL!" năm lần, mỗi lần với số lần lặp của nó. Đó như thể đặt mục tiêu khen ngợi PL/SQL năm lần một ngày - khả thi và cụ thể!

3. Vòng lặp WHILE

Vòng lặp WHILE giống như một tài xế cẩn thận. Nó kiểm tra điều kiện trước khi tiếp tục mỗi lần lặp. Dưới đây là cách nó hoạt động:

WHILE điều_kiện LOOP
-- Mã của bạn ở đây
END LOOP;

Hãy xem một ví dụ:

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('Tổng: ' || v_sum || ', Bộ đếm: ' || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;

Vòng lặp này cộng các số (1, 2, 3, ...) cho đến khi tổng vượt quá 10. Đó như thể đổ đầy một két tiền cho đến khi bạn có đủ cho món đồ công nghệ mới!

Đặt nhãn cho vòng lặp PL/SQL

Bây giờ, hãy nói về việc đặt nhãn cho vòng lặp. Đó như thể đặt tên cho vòng lặp của bạn - nó giúp bạn nhận diện và kiểm soát nó tốt hơn, đặc biệt là khi bạn có vòng lặp lồng nhau. Dưới đây là cách bạn đặt nhãn cho một vòng lặp:

<<nhãn_vòng_lặp>>
LOOP
-- Mã của bạn ở đây
END LOOP nhãn_vòng_lặp;

Hãy xem một ví dụ với vòng lặp lồng nhau:

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

Trong ví dụ này, chúng ta thoát khỏi vòng lặp ngoài khi i=2 và j=2. Đó như thể một trò chơi với các con búp bê Nga lồng nhau, nhưng chúng ta quyết định dừng lại giữa chừng!

Các câu lệnh điều khiển vòng lặp

Các câu lệnh điều khiển vòng lặp như thể là vô lăng của phương tiện vòng lặp của bạn. Chúng giúp bạn điều hướng thực thi của vòng lặp. Hãy xem các câu lệnh chính:

Câu lệnh Mô tả
EXIT Thoát khỏi vòng lặp ngay lập tức
EXIT WHEN Thoát khỏi vòng lặp khi điều kiện是真
CONTINUE Bỏ qua phần còn lại của lần lặp hiện tại và chuyển đến lần lặp tiếp theo
CONTINUE WHEN Bỏ qua phần còn lại của lần lặp hiện tại khi điều kiện是真

Dưới đây là một ví dụ sử dụng các câu lệnh này:

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

-- Bỏ qua các số lẻ
CONTINUE WHEN MOD(v_counter, 2) != 0;

DBMS_OUTPUT.PUT_LINE('Số chẵn: ' || v_counter);

-- Thoát khi đạt 10
EXIT WHEN v_counter = 10;
END LOOP;
END;

Vòng lặp này in các số chẵn từ 2 đến 10. Đó như thể một người ăn kiêng đi qua buffet - bỏ qua các món ăn kỳ lạ và dừng lại khi họ đã no!

Kết luận

Và thế là bạn đã có tất cả về các vòng lặp trong PL/SQL! Nhớ rằng, vòng lặp là công cụ mạnh mẽ trong bộ công cụ lập trình của bạn. Chúng giúp bạn tự động hóa các nhiệm vụ lặp lại, xử lý dữ liệu hiệu quả và làm cho mã của bạn trở nên thanh lịch hơn.

Khi bạn thực hành, bạn sẽ thấy mình ngày càng thoải mái với các khái niệm này. Đừng sợ thử nghiệm - đó là cách chúng ta học hỏi và phát triển như những nhà lập trình. Và谁知道? Có lẽ một ngày nào đó bạn sẽ viết vòng lặp trong giấc ngủ (mặc dù tôi hy vọng không, vì sake of your bedsheets)!

Tiếp tục lập trình, tiếp tục học hỏi, và quan trọng nhất, tiếp tục vui vẻ với PL/SQL!

Credits: Image by storyset