"continue" 关键字在 "if" 和 "while" 循环中
"continue" keyword inside "if" and "while" loop
我正在学习 Python。我的目标是打印出 1 到 5,跳过 3,使用 while 循环、if 语句和关键字 continue
。我下面的代码只打印出 1 2,而不是 1 2 4 5。
i = 1
while i <= 5:
if i == 3:
continue
print(i)
i += 1
- 为什么这个循环在
i == 3
时停止,而不是跳过 3 并继续 i = 4
和 i = 5
?
- 您将如何更正此代码以使其打印 1 2 4 5 (continuing/skipping 3)?
您陷入了无限循环。当你 continue
时,你永远不会增加 i
,所以它永远保持 3。
一旦达到 3,程序将不再增加 i
并将永远循环
你可以在测试前递增:
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
因为 continue
使您无法完成其余代码。因此,你只有一个无限循环。你可以看到,如果你 运行
i = 1
while i <= 5:
if i == 3:
print(i)
continue
print(i)
i += 1
如果你想在这个方法中这样做,你可以在继续之前增加 i,即
i = 1
while i <= 5:
if i == 3:
i+=1
continue
print(i)
i += 1
你的循环不会在你达到 3 时停止,而是无限期地继续,因为一旦 i
的值达到 3,你总是跳过递增 i
。
您需要在 continue
之前在 if
块中做一些事情,以确保您不会陷入无限循环。
要解决此问题,您可以这样做,当它不是 3 时打印该值,然后您甚至不需要使用 continue
:
i = 1
while i <= 5:
if i != 3:
print(i)
i += 1
但是,更快更简单的解决方案是:
for i in range(1, 5 + 1):
if i != 3:
print(i)
或者在 for
循环的情况下可以使用 continue
因为 for 循环将继续到下一个元素:
for i in range(1, 5 + 1):
if i == 3:
continue
print(i)
只是因为,您也可以使用像这样的短(按行)(也快)解决方案:
print('\n'.join(str(i) for i in range(1, 5 + 1) if i != 3))
你有一个无限循环,当你到达i == 3
时,你想跳过它,你通过使用continue
来完成。
continue
表示返回到 while
条件并对其进行评估。
因为你没有自增i
,语句永远为真(总是小于5),但是因为你没有改变i
,所以if
条件也将永远如此。你的代码无限循环。
您需要在 if
块中的 continue
之前更改 i
的值。
当你调用continue
时,增量将被跳过并且i
将永远停留在3
我正在学习 Python。我的目标是打印出 1 到 5,跳过 3,使用 while 循环、if 语句和关键字 continue
。我下面的代码只打印出 1 2,而不是 1 2 4 5。
i = 1
while i <= 5:
if i == 3:
continue
print(i)
i += 1
- 为什么这个循环在
i == 3
时停止,而不是跳过 3 并继续i = 4
和i = 5
? - 您将如何更正此代码以使其打印 1 2 4 5 (continuing/skipping 3)?
您陷入了无限循环。当你 continue
时,你永远不会增加 i
,所以它永远保持 3。
一旦达到 3,程序将不再增加 i
并将永远循环
你可以在测试前递增:
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
因为 continue
使您无法完成其余代码。因此,你只有一个无限循环。你可以看到,如果你 运行
i = 1
while i <= 5:
if i == 3:
print(i)
continue
print(i)
i += 1
如果你想在这个方法中这样做,你可以在继续之前增加 i,即
i = 1
while i <= 5:
if i == 3:
i+=1
continue
print(i)
i += 1
你的循环不会在你达到 3 时停止,而是无限期地继续,因为一旦 i
的值达到 3,你总是跳过递增 i
。
您需要在 continue
之前在 if
块中做一些事情,以确保您不会陷入无限循环。
要解决此问题,您可以这样做,当它不是 3 时打印该值,然后您甚至不需要使用 continue
:
i = 1
while i <= 5:
if i != 3:
print(i)
i += 1
但是,更快更简单的解决方案是:
for i in range(1, 5 + 1):
if i != 3:
print(i)
或者在 for
循环的情况下可以使用 continue
因为 for 循环将继续到下一个元素:
for i in range(1, 5 + 1):
if i == 3:
continue
print(i)
只是因为,您也可以使用像这样的短(按行)(也快)解决方案:
print('\n'.join(str(i) for i in range(1, 5 + 1) if i != 3))
你有一个无限循环,当你到达i == 3
时,你想跳过它,你通过使用continue
来完成。
continue
表示返回到 while
条件并对其进行评估。
因为你没有自增i
,语句永远为真(总是小于5),但是因为你没有改变i
,所以if
条件也将永远如此。你的代码无限循环。
您需要在 if
块中的 continue
之前更改 i
的值。
当你调用continue
时,增量将被跳过并且i
将永远停留在3