繁体   English   中英

If 语句在 While True 循环中返回 False (Python)

[英]If statement returning False in While True loop (Python)

我希望在这个 If 语句中,变量 'i' 会递增,直到它最终等于 10,随后 'if 10 < 10' 将返回 False,从而打破我的 while 循环。 但是这段代码似乎打印到 10 点,然后陷入无限循环,除非我添加 else:break。 为什么?

i=0
while True:
    if i < 10:
        i = i + 1 
        print(i)

while True将使循环永远运行,因为“true”总是评估为 true。 您可以通过中断退出循环。

为了实现你想做的事情,我会使用

while i < 10:
    print (i)
    i++

X等于Truewhile X重复,所以在while True中它总是True 它只用break语句中断。 在您的代码中,您仅使用 if 检查while循环内的值,因此您既不会中断 while 循环,也不会在while True中将True更改为False

如果你想使用while

i = 0
while i < 10:
    i += 1
    print(i)

或者

i = 0
while True:
    if i < 10:
        i += 1
        print(i)
    else:
        break

没有while

for i in range(10):
    print(i)

那是因为没有任何东西告诉你终止循环。 所以即使在 if 语句不满足之后它也会继续。

这就是为什么while True时使用通常不是一个好习惯的原因

当 break 条件内置到循环中时,您可以使用 for 循环实现相同的目的:

for i in range(0, 10):
    print(i)

如果你想使用 while True 那么你可以 go 用于:

i=0
while True:
   i = i + 1 
   print(i)
   if i == 10:
      break

我认为您需要在这里了解一些事情,因为您设置了while True这意味着语句永远不会为false ,因此即使if condition失败, while loop也永远不会结束。 因此, while loop将继续运行,直到您中断。

你可以在没有中断的情况下实现这一点的唯一方法是这样的,你有一个变量,当if loop失败时,它会将while loop的条件重置为 false

i=0
condition = True
while condition:
    if i<10:
        i=i+1
        print(i)
    else:
        condition=False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM