通过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
相关产品推荐
相关产品推荐

