Menu
CoddyTech

Vòng lặp lồng nhau

Thuộc phần Nền tảng cơ bản trong hành trình Python của Coddy. Bài học 41 trên 77.

Vòng lặp lồng nhau là một vòng lặp (loop) nằm bên trong một vòng lặp khác. Vòng lặp bên trong hoàn thành tất cả các lần lặp của nó trong mỗi lần lặp của vòng lặp bên ngoài.

Hãy bắt đầu với một vòng lặp lồng nhau đơn giản để hiểu khái niệm này:

rows = 3
cols = 2

# Vòng lặp bên ngoài
for i in range(rows):
    print(f"Outer loop iteration: {i}")
    
    # Vòng lặp bên trong
    for j in range(cols):
        print(f"  Inner loop iteration: {j}")

Khi chạy đoạn code này, bạn sẽ thấy:

Outer loop iteration: 0
  Inner loop iteration: 0
  Inner loop iteration: 1
Outer loop iteration: 1
  Inner loop iteration: 0
  Inner loop iteration: 1
Outer loop iteration: 2
  Inner loop iteration: 0
  Inner loop iteration: 1

Lưu ý rằng trong mỗi lần lặp của vòng lặp ngoài, vòng lặp trong hoàn tất tất cả các lần lặp của nó. Mỗi vòng lặp có bộ đếm riêng: j bắt đầu lại từ 0 mỗi khi vòng lặp ngoài chạy, còn rows và cols giữ nguyên và chỉ cho các vòng lặp biết khi nào cần dừng.

Bây giờ, hãy xem một ví dụ thực tế: in ra một mẫu đơn giản:

# In ra hình chữ nhật 2x3 bằng các dấu sao
for row in range(2):  # 2 hàng
    line = ""
    for col in range(3):  # 3 cột
        line += "*"
    print(line)

# Đầu ra:
# ***
# ***

Vòng lặp bên ngoài kiểm soát số hàng chúng ta in ra, còn vòng lặp bên trong tạo từng hàng bằng cách thêm các dấu sao.

challenge icon

Thử thách

Dễ

Viết code in ra một mẫu hình chữ nhật bằng dấu sao (*) sử dụng các vòng lặp lồng nhau.

Chương trình của bạn cần:

  1. Đọc hai số nguyên: rows và cols
  2. Dùng cấu trúc vòng lặp lồng nhau để in mẫu hình
  3. Vòng lặp ngoài lặp qua từng hàng
  4. Vòng lặp trong tạo từng hàng với số dấu sao chính xác
  5. In từng hàng đã hoàn thành

Ví dụ: nếu đầu vào có 3 hàng và 4 cột, đầu ra sẽ là:

****
****
****

Dùng một biến đếm mới cho mỗi vòng lặp, chẳng hạn i cho các hàng và j cho các dấu sao trong một hàng, rồi so sánh biến đó với rows hoặc cols. Đừng thay đổi chính rows và cols: mỗi hàng đều cần dùng lại cols.

Tự làm thử

# Nhập số hàng và số cột
rows = int(input())
cols = int(input())

# Viết các vòng lặp lồng nhau ở đây
# Vòng lặp ngoài duyệt các hàng
# Vòng lặp trong duyệt các cột
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nền tảng cơ bản

Tự luyện tập: Trình biên dịch Python online