如果我在 for 循环中使用 while 循环,while 循环不应该根据 for 循环的范围重复吗?



这就像如果我在范围 x 中使用 for 循环,在另一个范围为 y 的 for 循环中使用;然后内部 for 循环运行 y*x 次。

例:

for i in range(6): 
for j in range(20):
print('*',end=' ')
print( )

输出:

********************
********************
********************
********************
********************
********************
j=1
for i in range(6): 
while j<21:
print('*',end=' ')
j+=1
print( )

预期:

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

结果:

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

j变量的值不会重置,因为它是在循环外部声明的。
每次离开while循环时,您都必须重置变量,或者只是在循环中声明它如下: 第一种可能性:

j = 1
for i in range(6): 
while j<21:
print('*',end=' ')
j+=1
j = 1
print( )

第二种可能性(最好的一种(:

for i in range(6): 
j = 1
while j<21:
print('*',end=' ')
j+=1
print( )

看来你在第二个陈述中有一个错误......您应该在 for 循环中重置j变量:

for i in range(6): 
j=1
while j<21:
print('*',end=' ')
j+=1
print( )

你永远不会为下一次迭代重置 j

所以外部 for 循环的下一次迭代,j 从 21 开始

for i in range(6):
j = 1
while j<21:

在每个 for 循环中重置 J 变量

for i in range(6): 
j=1
while j<21:
print('*',end=' ')
j+=1
print( )

最新更新