首页 > 解决方案 > 什么是无限循环?

问题描述

据我了解,当循环的条件部分没有终止条件时,该循环称为无限循环。

例如,

while True:
 text = input("Enter something (q to quit) # ")
 print(text)
 if text=="q":
   break

或者,如果循环永远不会停止,则该循环称为无限循环。

例如,

i = 0
while i == 0:
 text = input("Enter something (q to quit) # ")
 print(text)

我对么?

标签: python

解决方案


input如果函数的行为符合定义,并且您的计算机连接了一个输入设备,那么您的第一个示例将永远不会导致发生无限循环,这样您就可以使该函数返回一个“q”。您的第二个示例在执行时总是会导致发生无限循环。

从技术上讲,您的代码中永远不会有无限循环。无限循环是在程序执行期间发生的事情。当您知道给定当前条件的代码逻辑意味着无法让当前循环的代码退出该循环时,您可以说您有一个无限循环。有很多事情可以导致这种情况。当然,有些代码块显然会导致在执行该代码时发生无限循环。

这三个代码片段都不是while True: breakwhile True: pass或者while True:是无限循环。它们在运行时可能会或可能不会导致无限循环。该行的存在while True:并不意味着您拥有将导致无限循环的代码。while True: break运行时永远不会导致无限循环。while True: pass运行时总是会导致无限循环。

考虑:

i = 1
while i != 0:
    i = someFunction()

没有办法知道这是否会导致无限循环。这显然取决于是否someFunction可以返回0。也许该函数仅0在当前日期为 1982 年时才返回。如果是这样,那么它就是一个无限循环。但也许它会0在两周后回来。在这种情况下,它不是一个无限循环,而是一个两周内不会退出的循环。当然,这两个示例假设您不去更改计算机的时钟。如果您在询问这些是否是无限循环时允许这样做,那么如果您可以更改计算机的时钟并导致函数返回,那么 1982 年的案例也不是严格意义上的无限循环0

综上所述,如果有人将一段代码标记为无限循环,如果它很明显会导致一个发生,我没有问题。我不会纠正那个人。这就是为什么我在答案顶部附近说“技术上”。


推荐阅读