根据条件停止循环

Stopping a loop based on conditions

所以我有一个程序可以计算 运行 总数。用户设置最大值,然后输入介于 1 和最大值之间的数字。如果用户输入一个负数,它应该停止循环并给出 运行 总数。我在输出总数然后继续询问我下一个数字时遇到问题。它还将负数添加到我不想要的总数中。我是 python 的新手,非常感谢任何见解。

END = int(input('Enter a maximum value:'))
total = 0
correct = False
while True:
    number = int(input('Enter a number between 1 and the maximum:'))
    total = total + number
    if number <= -1:
        print('Sum of all valid numbers entered:', total)
        correct = False
    elif number < 0 or number > END:
        print('Invalid number')

所以我做了一些修改。我有点困惑。代码肯定会在它应该停止的地方停止,但现在它只 returns 输入的负数。

END = int(input('Enter a maximum value:'))
total = 0
correct = False
while True:
    number = int(input('Enter a number between 1 and the maximum:'))
    if number <= -1:
        total = total + number
        print('Sum of all valid numbers entered:', total)
        correct = False
        break
    elif number < 0 or number > END:
        print('Invalid number')

您可以使用 break 停止任何循环而无需使用任何其他变量:

while True:
    number = int(input('Enter a number between 1 and the maximum:'))
    total = total + number
    if number <= -1:
        print('Sum of all valid numbers entered:', total)
        break
    elif number < 0 or number > END:
        print('Invalid number')

接下来的代码应该是:

END = int(input('Enter a maximum value:'))
total = 0
while True:
    number = int(input('Enter a number between 1 and the maximum:'))
    if number <= -1:
        print('Sum of all valid numbers entered:', total)
        break
    elif number > END:
        print('Invalid number')
    else: # if the number is bigger than or equal 1
        total += number # total = total + number

如果你想停止 while 循环,你必须使用 break 语句。 所以它看起来像这样

     total = total + number
     correct = False
     break
    elif