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

通过while循环实现整数累加:输入0无法终止循环的问题排查

问题分析与解决方案

你的代码核心问题是循环内部没有重新读取新的输入值,导致变量n的数值始终停留在第一次输入的结果:

  • 如果第一次输入的不是0,循环会无限执行sum = sum + n,永远触发不了终止条件;
  • 如果第一次输入的是0,循环直接跳过,打印初始的sum=0,完全不符合需求。

修正后的代码方案

方案一:无限循环+终止判断

这种写法逻辑更直观,每次先获取输入,判断是否为0,是则终止循环,否则累加数值:

sum_total = 0  # 避免用Python内置函数名`sum`作为变量名

while True:
    n = int(input())
    if n == 0:
        break
    sum_total += n

print(sum_total)

方案二:改进原有循环结构

在每次循环结束后重新读取输入,更新n的数值,确保下一次循环能基于新输入判断:

sum_total = 0
n = int(input())

while n != 0:
    sum_total += n
    n = int(input())  # 关键步骤:每次循环后更新输入值

print(sum_total)

验证效果

输入示例:

2
3
1
0

输出结果:

6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:10:20