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

If statement returning False in While True loop (Python)

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

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

那是因为没有任何东西告诉您终止循环。因此,即使不满足 if 语句,它也会继续。

这就是为什么使用 while True

通常不是很好的做法

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

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

while True 将使循环 运行 永远存在,因为 "true" 的计算结果总是为真。您可以通过 break 退出循环。

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

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

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

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

while XX 等于 True 时重复,所以在 while True 中它总是 True。它只中断 break 语句。 在您的代码中,您只使用 if 检查 while 循环内的值,这样既不会破坏 while 循环,也不会在 while True.[=25 中将 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)

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

你可以不间断地实现这一点的唯一方法是这样的,你有一个变量,当if loop失败

时,它将while loop的条件重置为false
i=0
condition = True
while condition:
    if i<10:
        i=i+1
        print(i)
    else:
        condition=False