一、题目引入
以下程序中,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后面一定一定要加大括号
四、运行结果
这个改进后的代码虽然也是什么都没有
但是程序至少正常结束了 不会死循环