Tại sao vòng lặp for lại tốt hơn vòng lặp while trong Python?

Vòng lặp for là một câu lệnh luồng điều khiển thực thi mã cho một số lần lặp được xác định trước. Từ khóa được sử dụng trong câu lệnh luồng điều khiển này là “for”. Khi đã biết trước số lần lặp, vòng lặp for được sử dụng

Vòng lặp for được chia thành hai phần -

Tiêu đề - Phần này chỉ định lần lặp của vòng lặp. Trong phần tiêu đề, biến vòng lặp cũng được khai báo, báo cho phần thân biết bước lặp nào đang được thực hiện

Nội dung - Phần nội dung chứa câu lệnh được thực hiện trên mỗi lần lặp

  • Các câu lệnh khởi tạo, kiểm tra điều kiện và lặp được viết ở đầu vòng lặp

  • Nó chỉ được sử dụng khi biết trước số lần lặp

  • Nếu điều kiện không được đề cập trong vòng lặp 'for', thì vòng lặp sẽ lặp lại vô số lần

  • Việc khởi tạo chỉ được thực hiện một lần và nó không bao giờ được lặp lại

  • Câu lệnh lặp được viết ở đầu

  • Do đó, nó thực thi khi tất cả các câu lệnh trong vòng lặp đã được thực thi

cú pháp

for(initialization; condition; iteration){
   //body of the 'for' loop
}

Ví dụ

Chương trình sau in tất cả các phần tử danh sách bằng vòng lặp for -

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

Input list elements:
10
20
30
40
50

Trong khi lặp lại

Một vòng lặp chạy một câu lệnh hoặc một tập hợp các câu lệnh cho một điều kiện đúng nhất định. Vòng lặp này được đại diện bởi từ khóa "trong khi. " Khi số lần lặp không xác định, vòng lặp "while" được sử dụng. Câu lệnh được lặp lại cho đến khi giá trị boolean là sai. Vì điều kiện được kiểm tra khi bắt đầu vòng lặp while nên nó còn được gọi là vòng lặp kiểm tra trước

  • Việc khởi tạo và kiểm tra điều kiện được thực hiện ở đầu vòng lặp

  • Nó chỉ được sử dụng khi không biết số lần lặp

  • Nếu điều kiện không được đề cập trong vòng lặp 'while', nó sẽ dẫn đến lỗi biên dịch

  • Nếu việc khởi tạo được thực hiện khi điều kiện đang được kiểm tra, thì việc khởi tạo xảy ra mỗi khi vòng lặp được lặp qua

  • Câu lệnh lặp có thể được viết trong bất kỳ điểm nào bên trong vòng lặp

cú pháp

while ( condition) {
   statements;
   //body of the loop
}

Ví dụ

Chương trình sau in tất cả các phần tử danh sách bằng vòng lặp for -

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

1
2
3
4
5
6
7
8
9

Khi nào bạn nên sử dụng vòng lặp For và While?

Vòng lặp for được sử dụng khi chúng ta biết số lần lặp, tức là một câu lệnh phải được thực hiện bao nhiêu lần. Đó là lý do tại sao khi chúng ta khởi tạo vòng lặp for, chúng ta phải xác định điểm kết thúc

Vòng lặp while được sử dụng khi không biết số lần lặp. Nó được sử dụng khi chúng ta cần kết thúc vòng lặp với điều kiện khác với số lần lặp lại. Không cần thiết phải biết điều kiện trước thời hạn trong trường hợp này. Đó là lý do tại sao chúng ta có thể sử dụng biểu thức boolean trong quá trình khởi tạo vòng lặp

Khi không có điều kiện

Nếu không có điều kiện nào được chỉ định trong vòng lặp for và while, vòng lặp sẽ lặp vô tận

Trong trường hợp không có điều kiện, sau đây là sự khác biệt giữa vòng lặp for và vòng lặp while -

Đối với Vòng lặp - Trong ví dụ sau, vòng lặp sẽ chạy vô hạn lần

Ví dụ

l = [1] for m in l: print("TutorialsPoint") l.append(m)

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

Chúng tôi đã bắt đầu với một danh sách và khởi tạo nó với một giá trị ngẫu nhiên duy nhất. Sau đó, sử dụng vòng lặp for và toán tử in, chúng ta duyệt qua các phần tử của danh sách. Bên trong vòng lặp, nó sẽ in một số văn bản ngẫu nhiên, sau đó chúng tôi đã thêm một phần tử khác vào danh sách, vì vậy vòng lặp for sẽ được thực thi lại do phần tử mới. Theo cách này, vòng lặp được thực hiện vô số lần

Vòng lặp While − Trong ví dụ sau, vòng lặp sẽ chạy vô hạn lần

Ví dụ

while True: print("TutorialsPoint")

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

Bảng phân biệt

Cơ sở so sánh Vòng lặp For LoopWhileKeywordUses for keywordUses while keywordUsedFor Vòng lặp được sử dụng khi số lần lặp đã biết. Vòng lặp While được sử dụng khi số lần lặp không xác định. không có điều kiệnVòng lặp chạy vô hạn khi không có điều kiệnTrả về lỗi thời gian biên dịch nếu không có điều kiệnBản chất của quá trình khởi tạoSau khi hoàn thành, nó không thể lặp lạiTrong vòng lặp while, nó có thể được lặp lại ở mỗi lần lặp. Chức năng Để lặp lại, chức năng phạm vi hoặc xrange được sử dụng. Không có chức năng như vậy trong vòng lặp while. Khởi tạo dựa trên phép lặp Được thực hiện ở đầu vòng lặp. Trong vòng lặp while, có thể thực hiện điều này ở bất kỳ đâu trong thân vòng lặp. Hỗ trợ trình tạo Vòng lặp for của Python có thể lặp qua các trình tạo. Trong khi các vòng lặp không thể được lặp lại trực tiếp trên Trình tạo. Tốc độ Vòng lặp for nhanh hơn vòng lặp while. Vòng lặp While tương đối chậm hơn so với vòng lặp for

Phần kết luận

Trong bài viết này, chúng ta đã tìm hiểu về sự khác biệt giữa vòng lặp for và vòng lặp while, cũng như cách thức hoạt động của vòng lặp for và while thông qua các ví dụ

Tại sao vòng lặp for tốt hơn vòng lặp while trong Python?

Vòng lặp for được sử dụng khi chúng ta đã biết số lần lặp, nghĩa là khi chúng ta biết một câu lệnh phải được thực hiện bao nhiêu lần . Đó là lý do tại sao chúng ta phải chỉ định điểm kết thúc trong quá trình khởi tạo vòng lặp for. Khi cần kết thúc vòng lặp với điều kiện ngoài số lần, ta sử dụng vòng lặp while.

TẠI SAO vòng lặp for tốt hơn vòng lặp while?

Sự khác biệt chính giữa vòng lặp for và vòng lặp while là trong trường hợp vòng lặp for, số lần lặp được biết trong khi trong trường hợp vòng lặp while, số lần lặp không xác định . .

Vòng lặp for có nhanh hơn vòng lặp while trong Python không?

Sử dụng Python thuần túy . Xin lưu ý rằng bạn không thể áp dụng cách hiểu danh sách trong mọi trường hợp khi bạn cần vòng lặp. Một số tình huống phức tạp hơn yêu cầu vòng lặp for hoặc thậm chí while thông thường. the for loop is faster, but also more elegant compared to while. Please, have in mind that you can't apply list comprehensions in all cases when you need loops. Some more complex situations require the ordinary for or even while loops.

Tại sao các vòng lặp hiệu quả hơn?

Hãy coi sự khác biệt chính là phong cách. với vòng lặp for, bạn không cần phải tìm kiếm giá trị ban đầu, ngưỡng và mức tăng . Việc tạo một vòng lặp vô hạn sau một thời gian cũng dễ dàng hơn rất nhiều vì bạn quên tăng.