嵌套 IF 会破坏父 IF 吗?

问题描述 投票:0回答:1

我正在和我的学生一起解决这个简单的问题,并对代码的这种意外行为感到震惊。

我们正在尝试找到 3 个数字中最大的一个:

    num1 = 12
    num2 = 9
    num3 = 16

    if num1 > num2:
       if num1> num3:
           print(num1)


    elif num2> num1:
        if num2 > num3:
            print(num2)

    else:
        print(num3)

代码不会有任何输出。

我的猜测是嵌套的 if 破坏了父 if 。

帮助我理解这一点。

python python-3.x if-statement
1个回答
1
投票

此代码的问题在于它没有涵盖所有可能的情况。具体来说,如果 num1 和 num2 相等,则代码不会打印任何内容,因为 if 条件 num1 > num2 将计算为 false,elif 条件 num2 > num1 也不会打印任何内容。

要解决此问题,您需要处理 num1 和 num2 相等的情况。

num1 = 12
num2 = 9
num3 = 16

if num1 > num2:
    if num1 > num3:
        print(num1)
    else:
        print(num3)
elif num2 > num3:
    print(num2)
else:
    print(num3)
© www.soinside.com 2019 - 2024. All rights reserved.