Nesting vòng lặp trong vòng lặp Python

Nesting vòng lặp trong vòng lặp

Chúng ta có thể nest các loops bên trong while loops, rất giống như chúng ta có thể nest các
loops bên trong for loops. Trong ‘Nesting’ học phần trước, tôi chú ý là for loop bên trong
hoàn thành tất cả các lặp của nó trước khi lần lặp tiếp theo của loop bên ngoài bắt đầu. Cái
tương tự xảy ra với while loops. Sau đây là một ví dụ:

>>> i = 0
>>> while i < 3:

… j = 8

… while j < 11:

… print(i, j)

… j = j + 1

… i = i + 1


0 8
0 9
0 10
1 8
1 9
1 10
2 8
2 9
2 10

Mỗi giá trị của i liên quan đến ba dòng đầu ra, mỗi cái cho mỗi lần lặp của j loop bên trong.
Concept check

Có bao nhiêu dòng được cho ra bởi nested loop sau?
x = 0
y = 1
while x < 3:

while y < 3:

print(x, y)

y = y + 1

x = x + 1

A. 2
B. 3
C. 6
D. 8
E. 9

Trả lời: A. Biểu thức Boolean của vòng lặp ngoài x < 3 là True nên ta thực hiện
sự lặp lại của vòng lặp bên ngoài. Điều đó dẫn đến hai lần lặp của vòng lặp bên trong: một
khi y là 1 và một khi y là 2, mỗi cái in ra một dòng đầu ra. Vậy đó là
hai dòng đầu ra cho đến nay.
Nhưng không có gì trong code đặt lại giá trị của y! Vì vậy, y < 3 sẽ không bao giờ đúng
một lần nữa và sẽ không có bất kỳ lần lặp nào nữa của vòng lặp bên trong.
Quên đặt lại một biến vòng lặp là một lỗi phổ biến khi xử lý
các vòng lặp while nested.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *