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

如何终止while循环?输入-1时循环体仍执行的问题排查

问题原因及修正方案

问题根源

你写的代码逻辑顺序有误:循环条件判断的是上一次输入的num值。当你输入-1时,程序已经因为上一次的num不是-1而进入了循环体,接着执行了num=int(input(...))将num更新为-1,随后直接执行了sum+=num和i+=1,直到下一次循环判断时才会退出。这就是-1被错误累加、计数的原因。

修正方案

方案一:用while True+break(推荐,逻辑更直观)

count = 0
total = 0  # 避免用sum当变量名,会覆盖Python内置的sum()函数

while True:
    num = int(input("enter a number:"))
    if num == -1:
        break
    total += num
    count += 1

print(total)
print(count)

输入数值后先判断是否为-1,若是则直接跳出循环,不会执行累加和计数操作,完全符合需求。

方案二:调整循环执行顺序

count = 0
total = 0
num = int(input("enter a number:"))  # 先获取第一个输入值

while num != -1:
    total += num
    count += 1
    num = int(input("enter a number:"))  # 循环内获取下一个值

print(total)
print(count)

先获取初始输入值,再进入循环判断。只有当num不是-1时,才执行累加和计数,随后获取下一个输入值,直到输入-1时直接退出循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:17:28