Trang chủ
Bài 7 : Lua – Vòng lặp
Bài 7 : Lua – Vòng lặp
1.Lua – Vòng lặp Trang trướcTrang tiếp theo Có thể có một tình huống khi bạn cần thực thi một […]
1.Lua – Vòng lặp
Có thể có một tình huống khi bạn cần thực thi một khối mã nhiều lần. Nói chung, các câu lệnh được thực thi tuần tự: câu lệnh đầu tiên trong một hàm được thực thi trước tiên, tiếp theo là câu lệnh thứ hai, v.v.
Các ngôn ngữ lập trình cung cấp các cấu trúc điều khiển khác nhau cho phép các đường dẫn thực thi phức tạp hơn.
Một câu lệnh lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Sau đây là dạng chung của câu lệnh lặp trong hầu hết các ngôn ngữ lập trình:

Lua cung cấp các loại vòng lặp sau để xử lý các yêu cầu về vòng lặp.
| Sr.No. | Loại vòng lặp & Mô tả |
|---|---|
| 1 | while loopLặp lại một câu lệnh hoặc một nhóm câu lệnh trong khi một điều kiện đã cho là đúng. Nó kiểm tra điều kiện trước khi thực thi phần thân của vòng lặp. |
| 2 | for loopThực thi một chuỗi các câu lệnh nhiều lần và viết tắt đoạn mã quản lý biến vòng lặp. |
| 3 | repeat…until loopLặp lại hoạt động của nhóm câu lệnh cho đến khi điều kiện được đáp ứng. |
| 4 | nested loops Bạn có thể sử dụng một hoặc nhiều vòng lặp bên trong bất kỳ vòng lặp while , for hoặc do.. while nào khác . |
Tuyên bố kiểm soát vòng lặp
Câu lệnh điều khiển vòng lặp thay đổi việc thực thi từ trình tự bình thường của nó. Khi việc thực thi rời khỏi một phạm vi, tất cả các đối tượng tự động được tạo trong phạm vi đó sẽ bị phá hủy.
Lua hỗ trợ các câu lệnh điều khiển sau.
| Sr.No. | Tuyên bố & Mô tả Kiểm soát |
|---|---|
| 1 | tuyên bố ngắtKết thúc vòng lặp và chuyển việc thực thi đến câu lệnh ngay sau vòng lặp hoặc chuyển đổi. |
Vòng lặp vô hạn
Một vòng lặp trở thành vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành sai. Các trong khi vòng lặp thường được sử dụng cho mục đích này. Vì chúng tôi trực tiếp đưa ra true cho điều kiện, nó sẽ tiếp tục thực thi mãi mãi. Chúng ta có thể sử dụng câu lệnh break để phá vỡ vòng lặp này.
while( true ) do print("This loop will run forever.") end 2.Lua – while loop
Một khi tuyên bố vòng lặp trong ngôn ngữ lập trình Lua nhiều lần thực hiện một tuyên bố mục tiêu miễn là một điều kiện nhất định là đúng.
Cú pháp
Cú pháp của một trong khi ngôn ngữ lặp trong Lua lập trình là như sau –
while(condition) do statement(s) end
Ở đây, (các) câu lệnh có thể là một câu lệnh đơn lẻ hoặc một khối câu lệnh. Điều kiện có thể là bất kỳ biểu thức nào và true là bất kỳ giá trị nào khác 0. Vòng lặp lặp lại trong khi điều kiện là đúng.
Khi điều kiện trở thành sai, điều khiển chương trình sẽ chuyển đến dòng ngay sau vòng lặp.
Sơ đồ dòng chảy

Ở đây, vấn đề mấu chốt cần lưu ý là các trong khi vòng lặp có thể không được thực hiện ở tất cả. Khi điều kiện được kiểm tra và kết quả là sai, phần thân của vòng lặp sẽ bị bỏ qua và câu lệnh đầu tiên sau vòng lặp while sẽ được thực thi.
Thí dụ
a = 10 while( a < 20 ) do print("value of a:", a) a = a+1 end Khi đoạn mã trên được xây dựng và thực thi, nó tạo ra kết quả sau:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
3.Lua – for Loop
Một cho vòng lặp là một cấu trúc điều khiển lặp lại cho phép bạn viết một cách hiệu quả một vòng lặp mà nhu cầu để thực hiện một số cụ thể của thời đại.
Cú pháp
Cú pháp của vòng lặp for trong ngôn ngữ lập trình Lua như sau:
for init,max/min value, increment do statement(s) end
Đây là luồng điều khiển trong vòng lặp for –
- Bước init được thực hiện đầu tiên và chỉ một lần. Bước này cho phép bạn khai báo và khởi tạo bất kỳ biến điều khiển vòng lặp nào.
- Tiếp theo, giá trị tối đa / tối thiểu . Đây là giá trị lớn nhất hoặc nhỏ nhất cho đến khi vòng lặp tiếp tục thực thi. Nó tạo ra một kiểm tra điều kiện nội bộ để so sánh giữa giá trị ban đầu và giá trị lớn nhất / nhỏ nhất.
- Sau khi phần thân của vòng lặp for thực thi, luồng điều khiển sẽ nhảy ngược trở lại câu lệnh tăng / giảm . Câu lệnh này cho phép bạn cập nhật bất kỳ biến điều khiển vòng lặp nào.
- Điều kiện bây giờ được đánh giá một lần nữa. Nếu nó là true, vòng lặp thực thi và quá trình lặp lại chính nó (phần thân của vòng lặp, sau đó là bước tăng dần và sau đó là điều kiện lặp lại). Sau khi điều kiện trở thành sai, vòng lặp for kết thúc.
Sơ đồ dòng chảy

Thí dụ
for i = 10,1,-1 do print(i) end
Khi đoạn mã trên được xây dựng và thực thi, nó tạo ra kết quả sau:
10 9 8 7 6 5 4 3 2 1
4. repeat…until loop
Không giống như các vòng lặp for và while , kiểm tra điều kiện của vòng lặp ở đầu vòng lặp, vòng lặp lặp lại … Until trong ngôn ngữ lập trình Lua kiểm tra điều kiện của nó ở cuối vòng lặp.
Một lặp lại … cho đến khi vòng lặp là tương tự như một vòng lặp while, ngoại trừ một do … while loop được đảm bảo để thực hiện ít nhất một lần.
Cú pháp
Cú pháp của vòng lặp lặp … cho đến trong ngôn ngữ lập trình Lua như sau:
repeat statement(s) until( condition )
Lưu ý rằng biểu thức điều kiện xuất hiện ở cuối vòng lặp, do đó (các) câu lệnh trong vòng lặp thực thi (các) một lần trước khi điều kiện được kiểm tra.
Nếu điều kiện sai, luồng điều khiển sẽ nhảy ngược lên để thực hiện và (các) câu lệnh trong vòng lặp thực thi lại. Quá trình này lặp lại cho đến khi điều kiện đã cho trở thành đúng.
Sơ đồ dòng chảy

Thí dụ
--[ local variable definition --] a = 10 --[ repeat loop execution --] repeat print("value of a:", a) a = a + 1 until( a > 15 ) Khi bạn xây dựng và thực thi chương trình trên, nó tạo ra kết quả sau:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15
.
5.Lua – nested Loops
Ngôn ngữ lập trình Lua cho phép sử dụng một vòng lặp bên trong một vòng lặp khác. Phần sau đây cho thấy một số ví dụ để minh họa khái niệm.
Cú pháp
Cú pháp cho một câu lệnh lặp for lồng nhau trong Lua như sau:
for init,max/min value, increment do for init,max/min value, increment do statement(s) end statement(s) end
Cú pháp cho một câu lệnh lặp while lồng nhau trong ngôn ngữ lập trình Lua như sau:
while(condition) do while(condition) do statement(s) end statement(s) end
Cú pháp của câu lệnh lặp lặp … cho đến khi lồng nhau trong ngôn ngữ lập trình Lua như sau:
repeat statement(s) repeat statement(s) until( condition ) until( condition )
Lưu ý cuối cùng về lồng vòng lặp là bạn có thể đặt bất kỳ loại vòng lặp nào bên trong bất kỳ loại vòng lặp nào khác. Ví dụ, một cho vòng lặp có thể bên trong một trong khi vòng lặp hoặc ngược lại.
Thí dụ
Chương trình sau sử dụng vòng lặp for lồng nhau :Bản thử trực tiếp
j = 2 for i = 2,10 do for j = 2,(i/j) , 2 do if(not(i%j)) then break end if(j > (i/j))then print("Value of i is",i) end end end Khi bạn xây dựng và chạy đoạn mã trên, nó sẽ tạo ra kết quả như sau.
Value of i is 8 Value of i is 9 Value of i is 10
Lượt xem : 211