理解python中嵌套while循环中的概念的问题

Posted

技术标签:

【中文标题】理解python中嵌套while循环中的概念的问题【英文标题】:Problem understanding a concept in nested while loops in python 【发布时间】:2019-12-05 17:22:29 【问题描述】:

为什么 while 循环没有在 4 或 2 处停止?

我尝试使用小于或等于号而不是小于号,但它所做的只是给我留下了更多问题。

i = 0 
while i < 4:
    while i < 6:
        i = i + 2
        print(i)

我希望输出为 2,因为当第一个 while 循环的条件变为 false 时,循环应该退出,或者如果我们不考虑第一个语句而只使用第二个语句,它应该输出 4,因为第一个和第二个循环的条件是小于不小于或等于。

我得到的实际结果是 2、4、6,我不知道为什么。

回复发表的评论: 不,我期待外部循环在 i 等于 2 时退出,就好像它等于 4 然后它小于或等于,尽管它应该是

编辑:感谢大家的帮助,我意识到在睡眠不足的情况下编程是多么令人沮丧。

【问题讨论】:

您是否希望外循环在i >= 4 时退出? 我不确定我是否完全理解为什么你期望它在 2 时退出,但并不是说没有不断检查条件;仅在执行返回到循环顶部时才检查它。或者换句话说,外部条件只会在内部循环完成时检查。 谢谢,但我还有一个问题,为什么 'i' 到 6 不应该小于 6 而不是小于或等于 6? i 从 4 变为 6,然后检查条件。 i &lt; 6 不会阻止 i 超过 5;它只是意味着一旦检查了条件,循环就会终止。 哦!非常感谢,我觉得我想太多让自己变得更加困难。 【参考方案1】:

在第一个循环中,您的条件小于 4,但是当您进入下一个循环时,您的条件会发生变化。它变得小于 6。第二个循环与第一个独立。

【讨论】:

以上是关于理解python中嵌套while循环中的概念的问题的主要内容,如果未能解决你的问题,请参考以下文章

一文了解Python中的循环(for while break continue 嵌套循环...)

Python:在“while”循环中嵌套“If”语句?

Python中的嵌套循环

Python打破嵌套的for循环并重新启动while循环

python中的if循环怎么样?

Python:嵌套的while循环将从第一个while开始“继续”,而不是嵌套的while