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