2 回答

TA貢獻1921條經驗 獲得超9個贊
你有兩個不同的輸入 -A和乙。如果A已經大于乙, 然后乙不能大于A。但,乙可以等于A。因此,您的代碼首先檢查是否A大于乙或不,如果你的輸入A大于乙然后它再次檢查是否乙大于A或不,這沒有意義。您使用了嵌套的 if 語句,即 if 語句內部的 if 語句。作為條件為乙在里面if a>b:
,你的代碼不檢查乙.
if a>b:
? ? print(arguments)
elif a == b:
? ? print(arguments)
else:? ?#this is if b>a
? ? print(arguments)

TA貢獻1820條經驗 獲得超2個贊
如果b大于a,則第一個if條件失敗。這意味著該if塊內沒有任何內容被執行。這包括嵌套if語句。因此它永遠不會執行 的測試b > a,然后就永遠不會打印b is bigger than a。
當你有互斥條件時,你不應該使用nested if,你應該使用elif.
if a > b:
print('a is bigger than b')
elif b > a:
print('b is bigger than a')
else:
print('a and b are the same')
if當您想要測試附加條件而不是替代條件時,嵌套非常有用。
a=int(input('What is the first number?'))
b=int(input('What is the second number?'))
c=int(input('What is the third number?'))
if a < b:
if (b < c):
print('The numbers are in order')
elif (c < b):
print('The first two numbers are in order, but not the third')
添加回答
舉報