Câu lệnh lặp while
là một công cụ mạnh mẽ trong Python, cho phép chúng ta thực thi một khối mã lặp đi lặp lại cho đến khi một điều kiện nhất định không còn đúng. Bài viết này sẽ đi sâu vào cú pháp, cách hoạt động và các ví dụ minh họa về câu lệnh while
, giúp bạn nắm vững và áp dụng hiệu quả trong lập trình.
Cú Pháp Của Câu Lệnh while
Cú pháp cơ bản của câu lệnh while
trong Python như sau:
while điều_kiện:
# Khối mã thực thi khi điều_kiện là True
# ...
Trong đó:
điều_kiện
: Là một biểu thức boolean (True hoặc False). Vòng lặpwhile
sẽ tiếp tục thực thi chừng nàođiều_kiện
còn làTrue
.Khối mã
: Là một hoặc nhiều câu lệnh Python được thụt vào bên trong câu lệnhwhile
. Khối mã này sẽ được thực thi lặp đi lặp lại.
Cách Thức Hoạt Động
- Kiểm tra điều kiện: Đầu tiên, Python đánh giá
điều_kiện
. - Thực thi khối mã (nếu cần): Nếu
điều_kiện
làTrue
, khối mã bên trong vòng lặpwhile
sẽ được thực thi. - Lặp lại: Sau khi khối mã được thực thi, Python quay lại bước 1, đánh giá lại
điều_kiện
. Quá trình này lặp lại cho đến khiđiều_kiện
trở thànhFalse
. - Kết thúc: Khi
điều_kiện
làFalse
, vòng lặpwhile
kết thúc và chương trình tiếp tục thực thi các câu lệnh phía sau vòng lặp.
Ví Dụ Minh Họa
Ví dụ 1: In Các Số Từ 1 Đến 5
i = 1
while i <= 5:
print(i)
i = i + 1
Trong đoạn chương trình trên:
i = 1
: Khởi tạo biếni
với giá trị ban đầu là 1.while i <= 5:
: Vòng lặpwhile
sẽ tiếp tục thực thi chừng nàoi
còn nhỏ hơn hoặc bằng 5.print(i)
: In giá trị củai
ra màn hình.i = i + 1
: Tăng giá trị củai
lên 1 sau mỗi lần lặp.
Kết quả:
1
2
3
4
5
Ví dụ 2: Tính Tổng Các Số Nhập Từ Bàn Phím Cho Đến Khi Nhập Số Âm
tong = 0
so = 0
while so >= 0:
so = int(input("Nhập một số (nhập số âm để kết thúc): "))
if so >= 0:
tong = tong + so
print("Tổng là:", tong)
Trong đoạn chương trình trên:
tong = 0
: Khởi tạo biếntong
để lưu tổng, giá trị ban đầu là 0.so = 0
: Khởi tạo biếnso
để lưu số nhập từ bàn phím.while so >= 0:
: Vòng lặpwhile
tiếp tục chừng nàoso
còn lớn hơn hoặc bằng 0.so = int(input("Nhập một số (nhập số âm để kết thúc): "))
: Yêu cầu người dùng nhập một số và gán vào biếnso
.if so >= 0:
: Kiểm tra nếuso
lớn hơn hoặc bằng 0 thì cộng vào biếntong
.print("Tổng là:", tong)
: In ra tổng sau khi vòng lặp kết thúc.
Ví dụ 3: Tìm Ước Chung Lớn Nhất (UCLN) Sử Dụng Vòng Lặp While
def ucln(a, b):
while b:
a, b = b, a % b
return a
M = int(input("Nhập số M: "))
N = int(input("Nhập số N: "))
print("UCLN của", M, "và", N, "là:", ucln(M, N))
Đoạn code này minh họa cách tìm UCLN của hai số M và N sử dụng thuật toán Euclid và vòng lặp while
. Vòng lặp tiếp tục cho đến khi b
bằng 0, lúc đó a
sẽ là UCLN.
Ví dụ 4: Đếm Số Chữ Số Của Một Số Nguyên Dương
n = int(input("Nhập một số nguyên dương: "))
k = 0
n = abs(n) # Đảm bảo n là số dương
while n != 0:
n = n // 10
k = k + 1
print("Số chữ số là:", k)
Đoạn code này sử dụng vòng lặp while
để đếm số lượng chữ số của một số nguyên dương. Trong mỗi lần lặp, số n
được chia nguyên cho 10, loại bỏ chữ số cuối cùng, và biến k
(số chữ số) tăng lên 1. Vòng lặp dừng khi n
bằng 0.
Ví dụ 5: In Ra Các Số Chia Hết Cho 3 Trong Khoảng Từ 1 Đến 20
x = 1
while (x <= 20):
if x % 3 == 0:
print(x, end=" ")
x = x + 1
Đoạn code này sử dụng vòng lặp while
để duyệt qua các số từ 1 đến 20. Bên trong vòng lặp, câu lệnh if
kiểm tra xem số hiện tại có chia hết cho 3 hay không. Nếu có, số đó sẽ được in ra màn hình.
Lưu Ý Quan Trọng Khi Sử Dụng while
- Điều kiện dừng: Đảm bảo rằng điều kiện trong vòng lặp
while
cuối cùng sẽ trở thànhFalse
. Nếu không, vòng lặp sẽ chạy mãi mãi (vòng lặp vô tận), dẫn đến treo chương trình. - Cập nhật biến: Trong hầu hết các trường hợp, bạn cần cập nhật giá trị của biến được sử dụng trong điều kiện của vòng lặp
while
bên trong khối mã. Điều này đảm bảo rằng điều kiện sẽ thay đổi và cuối cùng trở thànhFalse
.
So Sánh Với Vòng Lặp for
Vòng lặp while
và for
đều dùng để lặp lại một khối mã, nhưng chúng khác nhau về cách sử dụng:
while
: Sử dụng khi bạn không biết trước số lần lặp. Vòng lặp tiếp tục cho đến khi một điều kiện nhất định không còn đúng.for
: Sử dụng khi bạn biết trước số lần lặp, thường là duyệt qua một chuỗi, danh sách hoặc một phạm vi số.
Kết Luận
Câu lệnh lặp while
là một công cụ linh hoạt và mạnh mẽ trong Python. Nắm vững cú pháp và cách hoạt động của nó giúp bạn giải quyết nhiều bài toán phức tạp một cách hiệu quả. Hãy luyện tập với các ví dụ khác nhau để làm quen và sử dụng thành thạo câu lệnh này.