1. Khái niệm vòng lặp While trong Python

Vòng lặp While trong Python là một câu lệnh được gọi lại theo nhiều lần, nhằm mục đích lặp lại một khối lệnh cho đến khi một điều kiện nhất định được thỏa mãn. Và khi điều kiện lặp đến một số lần nhất định nào đó đã thỏa mãn và điều kiện lặp lúc này trở thành sai thì các dòng ngay sau vòng lặp trong chương trình sẽ được thực thi.

Ví dụ dưới đây, sử dụng vòng lặp while trong Python để lặp và hiển thị ra giá trị của biến trong khi giá trị của nó vẫn nhỏ hơn hoặc bằng

# Khai bao bien i 
i = 1

# Trong khi i van nho hon hoac bang 5 
while i <= 5:
    # Hien thi ra gia tri bien i
    print(i)
    # Tang bien i them 1 don vi sau moi lan lap
    i += 1

Kết quả:

1
2
3
4
5

Giải thích:

  • i là biến ban đầu có giá trị bằng 1
  • i <= 5 là điều kiện tiếp tục lặp
  • print(i) là việc thực hiện hiển thị giá trị biến i trong khi điều kiện lặp vẫn thỏa mãn
  • i +=1 là câu lệnh tăng biến i thêm một đơn vị, nhằm mục đích kết thúc vòng lặp

Chú ý: Nếu KHÔNG có câu lệnh i +=1 trong vòng lặp While thì chương trình sẽ lặp vô hạn lần, điều đó sảy ra bởi vì điều kiện lặp i <= 5 là luôn thỏa mãn khi KHÔNG có câu lệnh i += 1.

Ví dụ thứ hai, sử dụng vòng lặp while để lặp các phần tử có trong List như sau:

# Khai bao list gom 5 phan tu
listA = [1, 2, 3, 4, 5]

# Trong khi van con phan tu trong listA
while listA:
    # Thuc hien lay ra cac phan tu o cuoi ve phan tu dau bang phuong thuc pop()
    print(listA.pop())

Kết quả:

5
4
3
2
1

Vòng lặp while trong Python cũng được sử dụng để lặp thông qua một chuỗi các ký tự. Bởi vì bản chất chuỗi ký tự trong Python cũng là một mảng chứa nhiều ký tự. Như vậy ta có thể lặp qua các chỉ số của chúng, với chỉ số phần tử bắt đầu từ 0

# Khai bao chuoi
txt = "Hello"

# Khai bao bien i lam chi so bat dau cua chuoi
i = 0

# Lap tu phan tu dau den phan tu cuoi trong chuoi
while i in range(len(txt)):
    # Hien thi ra ky tu thu i trong chuoi
    print(txt[i])
    # Tang chi so i them 1 don vi de lap den ky tu tiep theo
    i += 1

Kết quả:

H
e
l
l
o

2. Câu lệnh IF ELSE trong vòng lặp While

Trong vòng lặp while hoàn toàn có thể sử dụng kết hợp với cấu trúc câu điều kiện IF – ELSE. Câu lệnh điều kiện được sử dụng trong vòng lặp thường để kiểm tra một điều kiện lặp hoặc chúng cũng có thể được sử dụng để lọc ra những giá trị cần lặp.

Ví dụ dưới đây, sử dụng câu điều kiện IF trong vòng lặp while để hiển thị ra các số chẵn có trong khoảng từ 1 đến như sau:

# Khai bao bien i 
i = 1
# Trong khi i van nho hon hoac bang 5 
while i <= 5:
    # Neu i la so chan
    if i % 2 == 0:
    	# Hien thi ra gia tri bien i
    	print(i)
    # Tang bien i them 1 don vi sau moi lan lap
    i += 1

Kết quả:

2
4

Chúng ta có thể sử dụng kèm theo từ khóa break trong vòng lặp để kết thúc vòng lặp ngay cả khi điều kiện lặp vẫn thỏa mãn như sau:

# Khai bao bien i 
i = 1
# Trong khi i van nho hon hoac bang 5 
while i <= 5:
    # Hien thi ra gia tri bien i
    print(i)
    # Neu i bang 3
    if (i == 3):
        # Ket thuc vong lap bang break
        break
    # Tang bien i them 1 don vi sau moi lan lap
    i += 1

Kết quả:

1
2
3

Ngoài ra, khi vòng lặp while được thực hiện đầy đủ số lần lặp và việc thực hiện câu lệnh đã thỏa mãn điều kiện lặp ta cũng có thể sử dụng câu lệnh ELSE cho trường hợp ngược lại của vòng lặp. Trường hợp này nghĩa là việc thực hiện các câu lệnh ngay sau khi lặp xong.

# Khai bao bien i 
i = 1
# Trong khi i van nho hon hoac bang 5 
while i <= 5:
    # Hien thi ra gia tri bien i
    print(i)
    # Tang bien i them 1 don vi sau moi lan lap
    i += 1
else:
    # Hien thi sau khi vong lap while thuc hien xong
    print("Vong lap da thuc hien thanh cong")

Kết quả:

1
2
3
4
5
Vong lap da thuc hien thanh cong

3. Vòng lặp While lồng nhau trong Python

Chúng ta đều biết rằng, trong vòng lặp while khi điều kiện vẫn còn thỏa mãn thì câu lệnh bên trong sẽ được thực thi. Giả sử câu lệnh bên trong vòng lặp while khi thực thi cũng có thêm một vòng lặp while nữa thì sao? Khi đó chính là việc ta sử dụng vòng lặp while lồng nhau trong Python.

Hiểu đơn giản thì, vòng lặp while lồng nhau là việc khai báo và sử dụng một vòng lặp while khác trong vòng lặp ban đầu.

Ví dụ dưới đây sử dụng vòng lặp while lồng nhau để đồng thời hiển thị ra các giá trị của ivới điều kiện lặp trong khi i <= 3j <=3 như sau:

# Khai bao hai bien i, j
i = 1
j = 1

# Duyet i tu 1 den 3
while(i <= 3):
    # Duyet j tu 1 den 3
    while(j <= 3):
        # Hien thi gia tri j 
        print(j)
        # Tang j them mot don vi de lam dieu kien dung vong lap j
        j += 1
    # Hien thi gia tri i    
    print(i)    
    # Tang i them mot don vi de lam dieu kien dung vong lap i      
    i += 1

Kết quả:

1
2
3
1
2
3

4. Vòng lặp While vô hạn trong Python

Trong hai phần trên, chúng ta chỉ mới sử dụng các vòng lặp while có điều kiện lặp nhất định. Ví dụ như:  lặp khi nhỏ hơn hoặc bằng 5, lặp khi i vẫn trong khoảng của chuỗi….

Trong Python còn tồn tại một dạng đặc biệt của vòng lặp while, vòng lặp đặc biệt đó được gọi là vòng lặp vô hạn. Vòng lặp vô hạn cũng là một vòng lặp while, tuy nhiên điều kiện lặp lúc này là true và chính vì thế nên vòng lặp luộn được thõa mãn và thực thi các khối lệnh bên trong liên tục và không dừng lại.

Ví dụ một vòng lặp vô hạn được sử dụng để hiển thị ra các số từ 1 đến dương vô cùng như sau:

# Khai bao bien i 
i = 1

# Trong khi dieu kien la true
while True:
    # Hien thi gia tri bien i
    print(i)
    # Tang bien i len mot don vi sau moi lan lap
    i += 1

Kết quả là chương trình chạy vô hạn lần lặp và chương trình này sẽ được dừng lại khi sảy ra việc tràn bộ nhớ, hoặc khởi động lại.

Lưu ý: Việc sử dụng vòng lặp while vô hạn trong Python là rất nguy hiểm cho chương trình, vì vậy trong những đoạn mã có sử dụng đến cấu trúc lặp bạn hãy chú ý về điều kiện kết thúc vòng lặp để tránh gây ra vòng lặp vô hạn. Nếu không có điều kiện dừng cho vòng lặp, tốt nhất nên giải quyết bằng phương pháp khác hoặc tạo ra một điều kiện tạm thời lặp!