一、題目引入
以下程序中,while循環的循環次數是多少次?
?
二、代碼分析
首先要明確的一點 while循環是當循環條件為真 就會一直循環 不會停止
while中i是小于10的 說明i可以取到0 1 2 3 4 5 6 7 8 9
進入第一個if判斷i小于1為真時執行continue
i=0是為真的 執行continue 后面的循環就不會執行 continue導致直接跳過當前循環 進入下一次循環
就連i++也會跳過 所以i的值始終都是0 進入下一次while循環(i<10) i的初始值還是等于0
所以i的值始終為0 因為i自始至終都是0 所以第二個if判斷根本沒有機會執行
所以程序回一直卡住在前一個if里面一直卡著 進入死循環 主要是因為i的值沒有進行自增
思路整理如下:
三、解決辦法
將i++語句放在第一個if的后面 是每次循環都能正常運行 避免死循環 以下是修正后的代碼
主要修改了一個部分:
在if后面加了個i++ 并且由于是兩條語句 所以第一個if后面一定一定要加大括號
四、運行結果
?這個改進后的代碼雖然也是什么都沒有
但是程序至少正常結束了 不會死循環??