這么些為什么不運行?
這么些為什么不運行? sum = 0 x = 1 while True: ? ?x = x + 1 ? ?if x % 2 == 1 and x<=100: ? ? ? ?continue ? ?sum = sum + x print sum
這么些為什么不運行? sum = 0 x = 1 while True: ? ?x = x + 1 ? ?if x % 2 == 1 and x<=100: ? ? ? ?continue ? ?sum = sum + x print sum
2016-08-31
舉報
2016-08-31
同學,這個循環的條件是True,也就是永遠都會滿足循環條件,意味著循環進入了死胡同。而代碼中的continue語句只是跳出當前循環,繼續下一輪循環,而在循環條件中下一輪條件還是滿足的,所以無法跳出循環,診斷結果是缺少break語句跳出循環。
上面的回答把代碼中條件語句拆開為兩句也可以,但是我覺得按照題主的思路,這個代碼要實現的應該是在100以內的數中求出滿足2的倍數的數之和(也可以說除0以外的偶數之和),那么這里可以給出代碼如下:
sum = 0
x = 1
while True:
??? x = x +1
??? if x > 100:
??????? break
??? if x % 2 = 0:
??????? sum = sum + x
print sum
或者我覺得更簡潔的循環方式是將條件語句改為:
while x <= 100:
然后去掉上面判斷大于100的條件語句
2016-08-31
2016-08-31
2016-08-31
?if x % 2 == 1 and x<=100: ? 這句應該分為倆句,and 的話是與運算,若判斷 x % 2 == 1為假的話,x <= 100 就不會執行下去的了,再結合上面小伙伴說的,再用break語句進行 x 的值判斷
2016-08-31
代碼進入了死循環....if判斷應該分開 ? if x > 100 break ? 利用這個退出循環...