【问题标题】:Is this an infinite loop?这是一个无限循环吗?
【发布时间】:2017-04-20 12:40:20
【问题描述】:

只是想确认以下是否是无限循环。我认为这不是因为内存是如何工作的,我隐约记得一旦达到某个下限或上限,整数如何循环回到相反的限制,这取决于整数是如何存储在计算机内存中的。但我不确定。

i = 0
while i < 1:
    #do stuff
    i -= 1

编辑:天哪,这是一个愚蠢的语法错误,我的错,我现在已经编辑了代码。谢谢你的耐心。 :)

【问题讨论】:

  • 如果您询问特定语言或机器,请说明。
  • 是的,因为条件i &lt; 1 永远不会变成true,除非在#do stuff 部分中您没有显示您正在修改变量i,以便它可能变得小于1. 注意:您正在递减一个不同的变量j。你是故意这样做还是真的是i
  • @Jesper 是的,我的错,我的意思是 i
  • @JoshLee 嗯,不是这样。只是一般。

标签: loops logic infinite-loop


【解决方案1】:

是的,这是一个无限循环。

您的条件是while i &lt; 1i 永远不会改变

【讨论】:

  • 以防万一,这是他这边的一个错字。
  • 在这种情况下仍然是无限循环...我猜这取决于编程语言(以及i 的类型),它可能会达到i 的最小可能值并抛出一个错误。
  • @Dazak 嗯好吧!考虑到 python 3.x 和 i 因此是 int?
  • 根据thisPython 具有任意精度整数,因此没有真正的固定最大值。你只受到可用内存的限制所以它仍然是一个无限循环,但是当可用内存被填满时,它会抛出一个OverflowError(在这部分我猜是因为我不熟悉python )
猜你喜欢
  • 2013-04-09
  • 1970-01-01
  • 2021-08-16
  • 2018-01-13
  • 2016-11-17
  • 2021-02-13
相关资源
最近更新 更多