Trong khi vòng lặp là gì?
Câu lệnh vòng lặp WHILE hoạt động tương tự như câu lệnh vòng lặp Cơ bản ngoại trừ điều kiện EXIT nằm ở đầu vòng lặp .
Nó hoạt động giống như một vòng lặp kiểm tra mục nhập, trong đó khối thực thi thậm chí sẽ không được thực thi một lần nếu điều kiện không được thỏa mãn, vì điều kiện thoát đang kiểm tra trước phần thực thi. Nó không yêu cầu từ khóa 'EXIT' thoát khỏi vòng lặp một cách rõ ràng vì nó đang xác thực điều kiện một cách hoàn toàn mỗi lần lặp lại.
WHILEGiải thích cú pháp:LOOP … END LOOP;
- Trong cú pháp trên, từ khóa 'WHILE' đá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.
- Điều kiện EXIT được đánh giá mỗi lần trước khi phần thực thi bắt đầu 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.
Ví dụ 1 : Trong ví dụ này, chúng ta sẽ in số từ 1 đến 4 bằng cách sử dụng câu lệnh lặp WHILE. Đối với điều đó, chúng tôi sẽ thực thi đoạn mã sau.
DECLAREa NUMBER :=1;BEGINdbms_output.put_line('Program started');WHILE (a <= 5)LOOPdbms_output.put_line(a);a:=a+1;END LOOP;dbms_output.put_line(‘Program completed' ); END:/
Giải thích mã:
- Dòng mã 2 : Khai báo biến 'a' là kiểu dữ liệu 'NUMBER' và khởi tạo với giá trị '1'.
- Dòng mã 4 : In thông báo "Chương trình đã bắt đầu".
- Dòng mã 5: Từ khóa 'WHILE' đánh dấu sự bắt đầu của vòng lặp và nó cũng kiểm tra xem giá trị của 'a' có nhỏ hơn hoặc bằng 5 hay không
- Dòng mã 7: In giá trị của 'a'.
- Dòng mã 8: Tăng giá trị của 'a' lên +1.
- Dòng mã 9: Từ khóa 'END LOOP' đánh dấu sự kết thúc của khối thực thi.
- Mã từ dòng 7 và dòng 8 sẽ tiếp tục thực thi cho đến khi 'a' đạt đến giá trị 6, vì điều kiện sẽ trả về TRUE và điều khiển sẽ EXIT khỏi vòng lặp.
- Dòng mã 10: In thông báo "Chương trình đã hoàn thành"
Tóm lược
Vòng | Trong khi lặp lại |
Tiêu chí EXIT | Thoát khi điều kiện kiểm tra trả về false |
Sử dụng | Tốt để sử dụng khi số vòng lặp không xác định và việc thoát dựa trên một số điều kiện khác. |