Vòng lặp While

Câu lệnh while

Câu lệnh while trong ngôn ngữ lập trình Python thực hiện một câu lệnh mục tiêu lặp lại nhiều lần miễn là một điều kiện cho trước là đúng.

Cú pháp

Cú pháp của vòng lặp while trong ngôn ngữ lập trình Python là −

python while điều_kiện: khối_lệnh

Ở đây, khối_lệnh có thể là một câu lệnh đơn hoặc một nhóm 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ị khác không nào. Vòng lặp lặp lại trong khi điều kiện là true.

Khi điều kiện trở thành false, điều khiển chương trình chuyển đến dòng ngay sau vòng lặp.

Trong Python, tất cả các câu lệnh được thụt đầu dòng bằng cùng một số ký tự dấu cách sau một cấu trúc lập trình được coi là một phần của một khối mã duy nhất. Python sử dụng thụt đầu dòng làm phương pháp nhóm các câu lệnh.

Sơ đồ luồng

Sơ đồ luồng của vòng lặp while trong Python như sau:

graph TD; A((Bắt đầu))--> B{Kiểm tra\nđiều kiện}; B -- Sai --> F((Kết thúc\nvòng lặp)); B -- Đúng --> D[Thực hiện lệnh]; D --> B;

Ở đây, điểm quan trọng của vòng lặp while là vòng lặp có thể không chạy lần nào. Khi điều kiện được kiểm tra và kết quả là false, thân vòng lặp sẽ được bỏ qua và câu lệnh đầu tiên sau vòng lặp while sẽ được thực thi.

Ví dụ

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"

Kết quả khi chạy đoạn code trên

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

Khối mã ở đây, bao gồm câu lệnh in và tăng giá trị biến, được thực thi lặp đi lặp lại cho đến khi biến count không còn nhỏ hơn 9 nữa. Sau mỗi lần lặp, giá trị hiện tại của biến đếm count được hiển thị và tăng lên 1.

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 điều kiện không bao giờ trở thành giá trị FALSE. Bạn phải cẩn trọng khi sử dụng vòng lặp while vì khả năng điều kiện không bao giờ giải quyết thành giá trị FALSE. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là vòng lặp vô hạn.

Một vòng lặp vô hạn có thể hữu ích trong lập trình client/server nơi máy chủ cần chạy liên tục để các chương trình khách có thể giao tiếp với nó khi cần.

Ví dụ

var = 1
while var == 1 :  # This constructs an infinite loop
   num = raw_input("Enter a number  :")
   print "You entered: ", num

print "Good bye!"

Kết quả khi chạy đoạn code trên

Enter a number  :20
You entered:  20
Enter a number  :29
You entered:  29
Enter a number  :3
You entered:  3
Enter a number between :Traceback (most recent call last):
   File "test.py", line 5, in <module>
      num = raw_input("Enter a number :")
KeyboardInterrupt

Ví dụ trên diễn ra trong một vòng lặp vô tận và bạn cần sử dụng CTRL+C để thoát khỏi chương trình.

Sử dụng câu lệnh else với vòng lặp while

Trong Python, chúng ta có thể sử dụng câu lệnh else với câu lệnh vòng lặp.

Nếu câu lệnh else được sử dụng với vòng lặp while, thì câu lệnh else sẽ được thực thi khi điều kiện trở thành sai.

Ví dụ dưới đây minh họa việc kết hợp câu lệnh else với một câu lệnh while, nó sẽ in ra một số khi nó nhỏ hơn 5 và nếu không thì sẽ thực thi câu lệnh else.

count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

Kết quả khi chạy đoạn code trên

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

Câu lệnh đơn

Tương tự cú pháp câu lệnh if, nếu điều kiện trong while chỉ bao gồm một câu lệnh đơn, nó có thể được đặt trên cùng một dòng với tiêu đề của while.

Đây là cú pháp và ví dụ về một điều kiện while trên cùng một dòng:

while <condition>: statement

Ví dụ:

x = 0
while x < 5: x += 1
print x

Kết quả khi chạy đoạn code trên

5

Bình luận