【问题标题】:hi why does my else in while loop is not working?嗨,为什么我的 else in while 循环不起作用?
【发布时间】:2022-12-04 03:05:35
【问题描述】:

我想选择两个数字,当我运行程序时,它将从较低的数字开始,一个接一个地打印数字,直到大数字。 while 中的循环正在工作,但 else 不工作......

num1= int(input('enter first number'))    
num2= int (input('enter second number'))

while num1 > num2 :
    print(num2)
    num2= num2 + 1

else:
 
    print(num1)
    num1 = num1 + 1

我想选择两个数字,当我运行程序时,它将从较低的数字开始,一个接一个地打印数字,直到大数字。 while 中的循环正在工作,但 else 不工作......

【问题讨论】:

  • 我不清楚你想要它做什么 - 我测试了它,它在 num2 变得大于或等于 num1 之后运行 else 块中的代码。看起来它正在做您已经描述的事情?

标签: python while-loop


【解决方案1】:

您的代码的问题是 else 块只有在 while 循环完成且没有遇到 break 语句时才会执行。在您的代码中,while 循环将仅在num1 > num2 时运行,并且由于您在循环内递增num2,循环最终将结束并且将执行else 块。

要解决此问题,您可以交换 while 循环和 else 块,以便在 num1 <= num2 时执行 else 块。您还可以使用 if 语句来检查是否为 num1 <= num2,并且仅在该条件为 True 时才运行循环。

以下是如何修改代码以使其工作的示例:

num1 = int(input('enter first number: '))
num2 = int(input('enter second number: '))

if num1 <= num2:
    while num1 <= num2:
        print(num1)
        num1 = num1 + 1
else:
    while num2 <= num1:
        print(num2)
        num2 = num2 + 1

此代码将检查 num1 是否小于或等于 num2,如果是,它将运行从 num1 开始的 while 循环并打印从 num1 到 num2 的数字。如果num1不小于或等于num2,else块将被执行,它将运行一个从num2开始的while循环并打印从num2num1的数字。这样,代码将始终从小数到大数打印数字,而不管先输入哪个数字。

【讨论】:

    【解决方案2】:

    你没写如果语句在你的代码中,这就是为什么它不起作用

    【讨论】:

    • Python 有 while... else 结构
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2022-01-26
    • 2022-12-12
    • 1970-01-01
    • 2022-01-03
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多