While 循环计数器混淆
While Loop Counter Confusion
我正在使用 while 循环,但我对如何以我想要的方式打破它有点困惑。所以我在 while 循环中嵌套了一个 for 循环:
x = True
y = 0
while x:
if y >= 5:
x = False
print('break')
else:
for x in range(7):
y += 1
print('test')
我正在寻找的输出是打印出 5 个测试和一个中断。但是,每次我 运行 程序都会在中断之前打印出 7 个测试。我不太确定,但我想我只是对 while 循环中的某些东西感到困惑!如果有人可以向我解释这一点,请告诉我 :) 我已经找到解决方法,但我想了解为什么它不起作用。
这是因为它在 while 循环中执行整个 for 循环,因此在再次检查之前 y 将变为 7。删除 for 循环将解决此问题。
x = True
y = 0
while x:
if y >= 5:
x = False
print('break')
else:
y += 1
print('test')
尝试
i = 0
while True:
if i == 5:
break
print('test')
i = i + 1
因为内循环将在外循环的下一次迭代之前完成。 IE。一旦内部循环开始,它会在开始 while 循环的下一次迭代之前完成所有 7 次迭代。
您只需使用一个循环即可完成此操作。打印出“测试”增加计数器并放入 if 条件以在计数器为 5 时中断。
y = 0
while y < 5:
print("test")
y += 1
print("break")
会起作用。
当 while 循环允许您直接设置条件时,为 while 循环添加另一个变量(如“x”)毫无意义。
打印 7 test
而不是 5 的原因是整个 for
循环在您返回到 while
语句的开头之前执行。我认为您的理解是,在 for
循环的一次迭代之后,您返回到 while
循环的开头,但这是不正确的:您的 for
循环在之前完全执行回到 while
循环的开头。
进入 for
循环后,您递增 y
7 次并打印 test
7 次。 y
现在 >= 5,然后您返回到 if
语句。 if
语句将 x
变为假,从而“关闭”while
循环,并打印出 break
语句。如果你只想打印出 5 test
和一个 break
,那么简化你的代码会容易得多:
y = 0
while True:
if y < 5:
print('test')
y += 1
else:
print('break')
break
我正在使用 while 循环,但我对如何以我想要的方式打破它有点困惑。所以我在 while 循环中嵌套了一个 for 循环:
x = True
y = 0
while x:
if y >= 5:
x = False
print('break')
else:
for x in range(7):
y += 1
print('test')
我正在寻找的输出是打印出 5 个测试和一个中断。但是,每次我 运行 程序都会在中断之前打印出 7 个测试。我不太确定,但我想我只是对 while 循环中的某些东西感到困惑!如果有人可以向我解释这一点,请告诉我 :) 我已经找到解决方法,但我想了解为什么它不起作用。
这是因为它在 while 循环中执行整个 for 循环,因此在再次检查之前 y 将变为 7。删除 for 循环将解决此问题。
x = True
y = 0
while x:
if y >= 5:
x = False
print('break')
else:
y += 1
print('test')
尝试
i = 0
while True:
if i == 5:
break
print('test')
i = i + 1
因为内循环将在外循环的下一次迭代之前完成。 IE。一旦内部循环开始,它会在开始 while 循环的下一次迭代之前完成所有 7 次迭代。
您只需使用一个循环即可完成此操作。打印出“测试”增加计数器并放入 if 条件以在计数器为 5 时中断。
y = 0
while y < 5:
print("test")
y += 1
print("break")
会起作用。
当 while 循环允许您直接设置条件时,为 while 循环添加另一个变量(如“x”)毫无意义。
打印 7 test
而不是 5 的原因是整个 for
循环在您返回到 while
语句的开头之前执行。我认为您的理解是,在 for
循环的一次迭代之后,您返回到 while
循环的开头,但这是不正确的:您的 for
循环在之前完全执行回到 while
循环的开头。
进入 for
循环后,您递增 y
7 次并打印 test
7 次。 y
现在 >= 5,然后您返回到 if
语句。 if
语句将 x
变为假,从而“关闭”while
循环,并打印出 break
语句。如果你只想打印出 5 test
和一个 break
,那么简化你的代码会容易得多:
y = 0
while True:
if y < 5:
print('test')
y += 1
else:
print('break')
break