Skip to content

Vòng lặp while

Tóm lược nội dung

Bài này trình bày:

  • Vòng lặp while
  • Lệnh breakcontinue

Khái quát

Vòng lặp for luôn đi kèm với một dãy số xác định từ hàm range(), đồng nghĩa ta biết rõ số lần thực hiện của thao tác.

Tuy nhiên, thực tế có nhiều tình huống mà ta không thể biết trước số lần thực hiện, chẳng hạn như:

  • Đăng nhập tài khoản: người dùng phải nhập mật khẩu cho đến khi đúng thì thôi.
  • Trò chơi điện tử: trong khi chưa vượt qua màn chơi, người chơi phải chơi lại.

Đối với những tình huống này, ta không thể dùng for, mà thay vào đó là vòng lặp while.

Khái niệm vòng lặp while

Câu lệnh while là một dạng cấu trúc lặp, áp dụng khi ta không biết trước số lần lặp của một thao tác nào đó.


Cú pháp

Cú pháp vòng lặp while

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

Vòng lặp while hoạt động như sau:

  1. Máy tính kiểm tra điều_kiện.
  2. Nếu điều_kiệnTrue thì khối_lệnh sẽ được thực hiện. Sau đó quay về bước 1.
  3. Nếu điều_kiệnFalse thì thoát khỏi vòng lặp.

Nói cách khác, cơ chế của while là: trong khi điều_kiện còn đúng thì còn làm.

Ví dụ:
Dòng lệnh 5 và 6 thực hiện lặp nhiều lần thao tác print().

Warning

Vì điều kiện i < n luôn là True nên print() sẽ được lặp vô số lần.

Do đó, hãy cẩn thận khi bấm nút Run. Tác giả chỉ code minh họa, chứ không tin lắm vào độ can đảm của bạn.

1
2
3
4
5
6
if __name__ == '__main__':
    n = 10

    i = 1
    while i < n:
        print('Coding is absolutely fun.')

Để vòng lặp while dừng lại sau một số lần lặp nào đó, ta phải có câu lệnh làm cho điều kiện trở thành False.

Ví dụ:
Bổ sung dòng lệnh 7 để tăng giá trị của i trong mỗi lần lặp.

1
2
3
4
5
6
7
if __name__ == '__main__':
    n = 10

    i = 1
    while i < n:
        print('Coding is absolutely fun.')
        i = i + 1 # (1)!

  1. Trong Python, i = i + 1 có thể viết ngắn gọn thành i += 1.

Chạy đoạn mã trên, kết quả như sau:

Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.
Coding is absolutely fun.

Lệnh break

break

Lệnh break dùng để dừng vòng lặp ở nửa chừng, bỏ qua toàn bộ các lệnh còn lại trong thân vòng lặp.

Nói cách khác, break hoạt động như một "nút dừng khẩn cấp", "ngắt ngang" vòng lặp khi có điều kiện đặc biệt xảy ra.

Ví dụ:
Dòng lệnh 9 sẽ ngắt vòng lặp khi điều kiện i đạt đến 4.

if __name__ == '__main__':
    n = 10

    i = 1
    while i < n:
        print(i)

        if i == 4:
            break

        i = i + 1

Chạy đoạn mã trên, kết quả như sau:

1
2
3
4

Lệnh continue

continue

Lệnh continue được dùng để bỏ qua các lệnh còn lại trong lần lặp hiện hành và chuyển sang lần lặp tiếp theo.

Ví dụ:
Dòng lệnh 9 bỏ qua thao tác print() khi i đạt đến 3, quay trở lại dòng lệnh 5 để kiểm tra điều kiện cho lần lặp mới.

if __name__ == '__main__':
    n = 5

    i = 0
    while i < n:
        i = i + 1

        if i == 3:
            continue

        print(i)

Chạy đoạn mã trên, kết quả như sau:

1
2
4
5

Lưu ý

Lệnh breakcontinue cũng áp dụng được trong vòng lặp for.


Mã nguồn

Code đầy đủ được đặt tại:


Sơ đồ tóm tắt


Some English words

Vietnamese Tiếng Anh
lặp với số lần không biết trước indefinite iteration
ngắt (vòng lặp, chương trình) break
vòng lặp vô tận infinite loop