代碼出了什么問題呢
sum=0
i=1
while True:
? ? if i%2==0:
? ? ? ? continue
? ? sum=sum+i
? ? i=i+1
? ? if i>100:
? ? ? ? break
print (sum)
sum=0
i=1
while True:
? ? if i%2==0:
? ? ? ? continue
? ? sum=sum+i
? ? i=i+1
? ? if i>100:
? ? ? ? break
print (sum)
2020-02-05
舉報
2020-02-05
左側圖示的代碼可以達到題主想要的目的。這里要明確兩個概念:
continue和break的:
????break:用來跳出整個循環
????continue:跳過本次循環體中余下尚未執行的語句,立即進行下一 ????次的循環,可以理解為僅結束本次循環。
在這里,題主的代碼塊是個死循環。
i=1時,沒問題,代碼可以執行,執行一次循環后,i=2
i=2時,將執行continue,此時,后續代碼不會被執行,所以 i 不會執行+1,直接跳到下一次循環,當下一次執行時,i 還是2,此時構成死循環。
2020-02-06
明白了,謝謝
2020-02-05
在循環過程中,可以用break退出當前循環,還可以用continue跳過后續循環代碼,繼續下一次循環。
您的continue用錯啦
題目要求是100以內奇數和,所以邏輯是判斷i是否已經超過100,判斷i是否為奇數
所以i值的更新需要在continue前面
您的代碼會在第三行至第五行(第二次循環時,也就是i = 2 s時)陷入死循環,continue外的那個if(第四行)一旦條件符合(i為偶數),就會返回while?ture(第三行),此時?i并未更新,始終等于2
故我會修改為:
sum = 0
i = -1
while True:
? ? i = i + 1
? ? if i > 100:
? ? ? ? break
? ? if i % 2 == 0:
? ? ? ? continue
? ? sum = sum + i
print sum