Vòng lặp là một chuỗi các lệnh được thực hiện cho đến khi thỏa mãn một điều kiện. Hãy xem cách vòng lặp while hoạt động trong Python.

Vòng lặp là gì?

Nếu bạn đang học viết mã, thì vòng lặp là một trong những khái niệm chính mà bạn nên hiểu. Vòng lặp giúp bạn thực hiện một chuỗi các hướng dẫn cho đến khi một điều kiện được thỏa mãn. Có hai loại vòng lặp chính trong Python.

  • Vòng lặp For
  • Vòng lặp While

Cả hai loại vòng lặp này đều có thể được sử dụng cho các hành động tương tự. Nhưng khi bạn học cách viết các chương trình hiệu quả, bạn sẽ biết khi nào nên sử dụng cái gì. Trong bài viết này, chúng ta sẽ xem xét các vòng lặp trong Python. Để tìm hiểu thêm về vòng lặp for, hãy xem bài viết này được xuất bản gần đây trên freeCodeCamp.

Vòng lặp While

Khái niệm đằng sau vòng lặp While rất đơn giản: Trong khi một điều kiện là đúng -> Chạy các lệnh của tôi. Vòng lặp While sẽ kiểm tra điều kiện mỗi lần và nếu nó trả về ‘true’ nó sẽ thực hiện các hướng dẫn trong vòng lặp. Trước khi bắt đầu viết mã, chúng ta hãy xem lưu đồ để xem nó hoạt động như thế nào. while-loopBây giờ chúng ta hãy viết mã. Đây là cách bạn viết một vòng lặp while đơn giản để in các số từ 1 đến 10.

#!/usr/bin/python  x = 1  while(x <= 10): 	print(x) 	x = x+1

Nếu bạn nhìn vào đoạn mã trên, vòng lặp sẽ chỉ chạy nếu x nhỏ hơn hoặc bằng 10. Nếu bạn khởi tạo x là 20, vòng lặp sẽ không bao giờ thực hiện. Đây là kết quả của vòng lặp while đó:

> python script.py 1 2 3 4 5 6 7 8 9 10

Vòng lặp Do-While

Có hai biến thể của vòng lặp while – while và do-While. Sự khác biệt giữa hai là do-while chạy ít nhất một lần. Một vòng lặp while thậm chí có thể không thực hiện một lần nếu điều kiện không được đáp ứng. Tuy nhiên, do-while sẽ chạy một lần, sau đó kiểm tra điều kiện cho các vòng lặp tiếp theo. do-whileMặc dù có mặt trong hầu hết các ngôn ngữ lập trình phổ biến, nhưng Python không có câu lệnh do-while gốc. Nhưng bạn có thể dễ dàng mô phỏng vòng lặp do-while bằng cách sử dụng các phương pháp khác, chẳng hạn như các hàm. Hãy thử cách tiếp cận do-while bằng cách gộp các lệnh trong một hàm.

#!/usr/bin/python  x = 20  def run_commands(): 	x = x+1 	print(x)   run_commands() while(x <= 10): 	run_commands()

Đoạn mã trên chạy hàm ‘run_commands()’ một lần trước khi gọi vòng lặp while. Sau khi vòng lặp while bắt đầu, hàm ‘lệnh_run’ sẽ không bao giờ được thực thi vì x bằng 20.

While – Else

Bạn có thể thêm câu lệnh ‘else’ để chạy nếu điều kiện vòng lặp không thành công. Hãy thêm một điều kiện khác vào mã của chúng ta để in ‘Xong’ sau khi chúng ta đã in các số từ 1 đến 10.

#!/usr/bin/python  x = 1  while(x <= 10): 	print(x) 	x = x+1 else: 	print("Done")

Đoạn mã trên trước tiên sẽ in các số từ 1 đến 10. Khi x bằng 11, điều kiện trong khi sẽ không thành công và kích hoạt điều kiện khác.

Câu lệnh While một dòng

Nếu bạn chỉ có một dòng mã trong vòng lặp while, bạn có thể sử dụng cú pháp một dòng.

#!/usr/bin/python  x = 1 while (x): print(x)

Vòng lặp vô hạn

Nếu bạn không cẩn thận khi viết vòng lặp, bạn sẽ tạo ra các vòng lặp vô hạn. Vòng lặp vô hạn là vòng lặp mà điều kiện luôn đúng.

#!/usr/bin/python  x = 1 while (x >= 1): 	print(x)

Đoạn mã trên là một ví dụ về vòng lặp vô hạn. Không có lệnh nào thay đổi giá trị của x nên điều kiện ‘x lớn hơn hoặc bằng 1’ luôn đúng. Điều này sẽ làm cho vòng lặp chạy mãi mãi. Luôn cẩn thận khi viết các vòng lặp. Một lỗi nhỏ có thể dẫn đến một vòng lặp vô hạn và làm hỏng ứng dụng của bạn.

Kiểm soát vòng lặp

Cuối cùng, chúng ta hãy xem cách kiểm soát luồng của một vòng lặp khi nó đang chạy. Khi viết các ứng dụng trong thế giới thực, bạn sẽ thường gặp phải các tình huống trong đó bạn cần thêm các điều kiện bổ sung để bỏ qua vòng lặp hoặc thoát ra khỏi vòng lặp.

Break

Hãy xem cách viết thoát khỏi vòng lặp trong khi điều kiện là đúng.

#!/usr/bin/python  x = 1 while (x <= 10):     if(x == 5):     	break     print(x)     x += 1

Trong đoạn mã trên, vòng lặp sẽ dừng thực thi khi x bằng 5, mặc dù x lớn hơn hoặc bằng 1.

Tiếp tục

Đây là một tình huống khác: giả sử bạn muốn bỏ qua vòng lặp nếu một điều kiện nhất định được đáp ứng . Tuy nhiên, bạn muốn tiếp tục các lần thực thi tiếp theo cho đến khi điều kiện chính chuyển thành sai. Bạn có thể sử dụng từ khóa ‘tiếp tục’ cho điều đó, như sau:

#!/usr/bin/python  x = 1 while (x <= 10):     if(x == 5):     	x += 1     	continue     print(x)

Trong ví dụ trên,  vòng lặp sẽ in từ 1 đến 10, ngoại trừ 5. Khi x bằng 5, các lệnh còn lại sẽ bị bỏ qua và luồng điều khiển quay trở lại phần đầu của chương trình while.

Tóm tắt

Vòng lặp là một trong những thành phần hữu ích nhất trong lập trình mà bạn sẽ sử dụng hàng ngày. For và while là hai vòng lặp chính trong Python. Vòng lặp while có hai biến thể, while và do-while, nhưng Python chỉ hỗ trợ biến thể đầu tiên. Bạn có thể kiểm soát luồng chương trình bằng lệnh ‘ngắt’ và ‘tiếp tục’. Luôn lưu ý về việc vô tình tạo ra các vòng lặp vô hạn. Tôi thường xuyên viết về các chủ đề bao gồm Trí tuệ nhân tạo và An ninh mạng. Nếu bạn thích bài viết này, bạn có thể đọc blog của tôi ở đây.