如何终止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
相关产品推荐
相关产品推荐

