Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Sức mạnh lớn nhất của máy tính là làm một việc hàng triệu lần mà không kêu ca. Để tận dụng điều đó, bạn cần vòng lặp. Thay vì viết 100 dòng giống nhau, bạn chỉ viết một lần và nói máy lặp lại.
Dùng for khi bạn biết cần lặp bao nhiêu lần hoặc cần duyệt qua một tập phần tử. Trong Python:
for i in range(5):
print("Lần", i)
ten = ["An", "Bình", "Chi"]
for t in ten:
print("Xin chào", t)range(5) sinh ra các số 0, 1, 2, 3, 4 (không gồm 5). Rất nhiều lập trình viên mới nhầm điểm này nên hãy nhớ: chỉ số trong lập trình thường bắt đầu từ 0.
Trong JavaScript hay C, vòng for kinh điển có ba phần:
for (let i = 0; i < 5; i++) {
console.log("Lần", i);
}Ba phần là: khởi tạo (i = 0), điều kiện tiếp tục (i < 5), và bước nhảy (i++).
Dùng while khi bạn không biết trước số lần, ví dụ hỏi người dùng đến khi họ nhập đúng:
mat_khau = ""
while mat_khau != "123456":
mat_khau = input("Nhập mật khẩu: ")
print("Đăng nhập thành công")Vòng lặp kiểm tra điều kiện trước mỗi lượt. Nếu điều kiện luôn đúng, chương trình sẽ chạy mãi, đó là vòng lặp vô hạn. Luôn đảm bảo có thứ gì đó bên trong làm điều kiện cuối cùng thành sai.
Hai lệnh giúp điều khiển vòng lặp linh hoạt hơn:
for n in range(1, 11):
if n % 2 == 0:
continue # bỏ qua số chẵn
if n > 7:
break # dừng khi vượt 7
print(n) # in 1, 3, 5, 7Bạn có thể đặt vòng lặp trong vòng lặp. Ví dụ in bảng cửu chương:
for a in range(2, 4):
for b in range(1, 11):
print(a, "x", b, "=", a * b)Vòng ngoài chạy 2 lượt, mỗi lượt vòng trong chạy 10 lần, tổng 20 phép tính. Cẩn thận: lồng nhiều tầng làm số lần chạy tăng rất nhanh, đây là nguồn gốc của nhiều chương trình chậm.
| Tình huống | Nên dùng |
|---|---|
| Duyệt từng phần tử của danh sách | for |
| Lặp đúng N lần | for |
| Lặp đến khi người dùng nhập đúng | while |
| Lặp đến khi đạt một điều kiện không biết trước | while |
tong = 0
for i in range(1, 101):
tong += i
print(tong) # 5050
def la_nguyen_to(n):
if n < 2:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d += 1
return True
print([x for x in range(2, 30) if la_nguyen_to(x)])Ví dụ thứ hai chỉ kiểm tra ước đến căn bậc hai của n, một cải tiến nhỏ nhưng giúp nhanh hơn đáng kể.
while, dẫn tới vòng lặp vô hạn.<= thay vì < làm lặp thừa một lần.Thử các bài sau để làm quen, mỗi bài chỉ cần dưới 15 dòng:
for.while (chia 10 liên tục).import random
bi_mat = random.randint(1, 100)
so_lan = 0
while True:
doan = int(input("Đoán số: "))
so_lan += 1
if doan < bi_mat:
print("Cao hơn")
elif doan > bi_mat:
print("Thấp hơn")
else:
print(f"Đúng sau {so_lan} lần!")
breakMẹo hay: nếu mỗi lần đoán bằng cách chia đôi khoảng còn lại, bạn luôn tìm ra số trong chưa đến 7 lần, chính là tìm kiếm nhị phân.
Vòng lặp biến những việc lặp đi lặp lại thành vài dòng code gọn gàng. Hãy luyện với các bài như tính giai thừa, đếm chữ số, in hình tam giác bằng dấu sao. Khi đã thành thạo, bạn sẽ thấy phần lớn thuật toán đều xoay quanh việc lặp thông minh.
Muốn học bài bản và có người hướng dẫn? Hãy xem các khóa học trên codebem.com để đi từ nền tảng đến dự án thực tế.
Nguyễn Đình Cường
0 comment