為啥if條件放前面和放后面的結果是一樣的呢
while True:
? ? sum = sum + x
? ? x = x * 2
? ? n = n + 1
? ? if n > 20:
? ? ? ? break
while True:
? ? if n > 20:
? ? ? ? break
? ? sum = sum + x
? ? x = x * 2
? ? n = n + 1
while True:
? ? sum = sum + x
? ? x = x * 2
? ? n = n + 1
? ? if n > 20:
? ? ? ? break
while True:
? ? if n > 20:
? ? ? ? break
? ? sum = sum + x
? ? x = x * 2
? ? n = n + 1
2018-07-30
舉報
2018-08-01
因為一般來說我們都是要先對條件值進行判斷的,這樣才能確保后面的運算不會出錯,但是由于這道題其實不算太嚴謹所以才會前后結果一樣,這里的條件臨界值是20,但是n的初始值是1所以不管if放在前面還是后面,它都還是會進行第一次運行,直到n>20。但是如果n的初始值是21的話,if在前面,就會直接跳出循環,if放在后面的話它就會進行一次運算然后當n=22才跳出循環,而且由于n不參與運算,所以對運算結果不產生直接影響,所以這里前后都可以
2018-07-31
我們看臨界值,假設n=19,
if條件放后面,sum和x值都變了,然后n加1為20跳出循環。
if條件放前面,進入循環,sum和x值變化,然后n加1,結束本輪循環,n達到20,下輪跳出循環。
跳出循環之前在循環控制的臨界值內,sum和x都會相應變化。