Oracle PL / SQL FOR LOOP với ví dụ

Mục lục:

Anonim

For Loop là gì?

Câu lệnh "FOR LOOP" phù hợp nhất khi bạn muốn thực thi mã trong một số lần đã biết hơn là dựa trên một số điều kiện khác.

Trong vòng lặp này, giới hạn dưới và giới hạn cao hơn sẽ được chỉ định và miễn là biến vòng lặp nằm giữa phạm vi này, vòng lặp sẽ được thực hiện.

Biến vòng lặp là biến tự tăng dần, vì vậy không cần thao tác tăng gia rõ ràng nào trong vòng lặp này. Không cần khai báo biến vòng lặp vì nó được khai báo ngầm định.

FOR  in LOOPEND LOOP;
Giải thích cú pháp:
  • Trong cú pháp trên, từ khóa 'FOR' đánh dấu sự bắt đầu của vòng lặp và 'END LOOP' đánh dấu sự kết thúc của vòng lặp.
  • Biến vòng lặp được đánh giá mọi lúc trước khi thực hiện phần thực thi.
  • Khối thực thi chứa tất cả mã cần được thực thi. Phần thực thi có thể chứa bất kỳ câu lệnh thực thi nào.
  • Loop_variable được khai báo ngầm trong quá trình thực thi toàn bộ vòng lặp và phạm vi của loop_variable này sẽ chỉ nằm trong vòng lặp này.
  • Nếu biến vòng lặp nằm ngoài phạm vi, thì điều khiển sẽ thoát khỏi vòng lặp.
  • Vòng lặp có thể hoạt động theo thứ tự ngược lại bằng cách thêm từ khóa 'REVERSE' trước Lower_limit.

Ví dụ 1 : Trong ví dụ này, chúng ta sẽ in số từ 1 đến 5 bằng cách sử dụng câu lệnh vòng lặp FOR. Đối với điều đó, chúng tôi sẽ thực thi đoạn mã sau.

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

Giải thích mã:

  • Dòng mã 2 : In thông báo "Chương trình đã bắt đầu".
  • Dòng mã 3: Từ khóa 'FOR' đánh dấu sự bắt đầu của vòng lặp và loop_variable 'a' được khai báo. Bây giờ nó sẽ có giá trị bắt đầu từ 1 đến 5
  • Dòng mã 5: In giá trị của 'a'.
  • Dòng mã 6: Từ khóa 'END LOOP' đánh dấu sự kết thúc của khối thực thi.
  • Mã từ dòng 5 sẽ tiếp tục thực thi cho đến khi 'a' đạt đến giá trị 6, vì điều kiện sẽ không thành công và điều khiển sẽ EXIT khỏi vòng lặp.
  • Dòng mã 7: In thông báo "Chương trình đã hoàn thành"

Vòng lồng nhau

Các câu lệnh lặp cũng có thể được lồng vào nhau. Vòng ngoài và vòng trong có thể có nhiều kiểu khác nhau. Trong vòng lặp lồng nhau, cứ một giá trị lặp của vòng lặp bên ngoài, vòng lặp bên trong sẽ được thực thi đầy đủ.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Giải thích cú pháp:
  • Trong cú pháp trên, vòng lặp bên ngoài có thêm một vòng lặp nữa bên trong nó.
  • Các vòng lặp có thể thuộc bất kỳ loại nào và phần chức năng thực thi là giống nhau.

Ví dụ 1 : Trong ví dụ này, chúng ta sẽ in số từ 1 đến 3 bằng cách sử dụng câu lệnh vòng lặp FOR. Mỗi số sẽ được in bao nhiêu lần giá trị của nó. Đối với điều đó, chúng tôi sẽ thực thi đoạn mã sau.

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

Giải thích mã:

  • Dòng mã 2 : Khai báo biến 'b' là kiểu dữ liệu 'NUMBER'.
  • Dòng mã 4 : In thông báo "Chương trình đã bắt đầu".
  • Dòng mã 5: Từ khóa 'FOR' đánh dấu sự bắt đầu của vòng lặp và loop_variable 'a' được khai báo. Bây giờ nó sẽ có giá trị bắt đầu từ 1 đến 3
  • Dòng mã 7: Đặt lại giá trị của 'b' thành '1' mỗi lần.
  • Dòng mã 8: Vòng lặp while bên trong kiểm tra điều kiện a> = b.
  • Dòng mã 10: In giá trị của 'a' miễn là thỏa mãn điều kiện trên.
  • Dòng mã 14: In thông báo "Chương trình đã hoàn thành"

Tóm lược

Vòng Vòng lặp FOR
Tiêu chí EXIT Thoát khi bộ đếm đạt đến giới hạn
Sử dụng Tốt để sử dụng khi đã biết số vòng lặp được thực thi.