You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含if语句的while循环执行逻辑疑问:为何输出5次Hello?

为什么这段Python代码会输出5次"Hello"?

先看你提供的代码:

x = 5

while x > 0:
    x -= 1
    if x == 5:
        print("Friendly Fires")
    print("Hello")

我们一步步拆解循环的执行流程,就能明白原因:

初始值 x = 5,进入while x > 0的判断逻辑:

  • 第一次循环:x > 0(5>0)成立,先执行x -= 1,x变为4;判断x ==5不成立,打印"Hello"。
  • 第二次循环:x >0(4>0)成立,x减1变为3;判断不成立,打印"Hello"。
  • 第三次循环:x >0(3>0)成立,x减1变为2;打印"Hello"。
  • 第四次循环:x >0(2>0)成立,x减1变为1;打印"Hello"。
  • 第五次循环:x >0(1>0)成立,x减1变为0;判断x==5不成立,打印"Hello"。

当第五次循环的代码执行完毕后,回到while的条件判断:此时x=0,0>0不成立,循环才会退出。

核心点在于:while循环是先判断条件是否满足,再执行循环体内部的代码。第五次进入循环时,x的值是1,满足x>0的条件,所以不管执行循环体后x变成什么,这次循环里的print("Hello")都会被执行。

另外你提到的print("Friendly Fires")永远不会触发,这个分析是对的——第一次进入循环x就从5减到了4,之后x只会越来越小,永远不可能等于5。

内容的提问来源于stack exchange,提问作者Kotor2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:56:10