说到while循环究竟执行多少次,那可得先看条件啊。比如这样一个经典的例子:i从1开始,每次都乘以2,直到i大于n才结束。听起来有点像“跳级成长”,跳得快,执行次数自然少。具体来说:
因为i每次都2,也就是说增长速度超级快,整个循环执行次数大概就是“i跳几次从1到超过n”这么个意思。也就是说,执行次数和n的对数成正比——时间复杂度就是O(log₂n)* 。挺神奇吧?简单说,n越大,循环次数增加得并没那么吓人!

说起while循环,它的执行过程其实蛮直白的:
那问题来了:“哎,如果我想跳出去该咋整?”嘿嘿,好几个方法告诉你:
所以,不用担心卡死啦,灵活点,这些招数都很好用的。
另外说个容易混淆的:while(1)是什么意思?它就是无条件无限循环的意思啦。while(1)、while(2)甚至while(9999)都一样,条件永远为真,不停执行循环体。要想终止,得靠break或者其他跳出方法。很多时候我们写程序调试或者做服务端脚本时都会用到它,嗷呦,就是不停“刷刷刷”地运行某些任务。

while循环时间复杂度为什么是O(log n)?
哦,这个其实很好理解!想象一下,i每次都*2,成长超快,快速逼近甚至超过n。比如从1到8,只需3次(1→2→4→8)。所以执行次数跟“2的多少次方等于n”有关,也就是对数嘛!所以你别瞧它反复循环,其实次数没那么多,太赞了。
怎么优雅地跳出while循环?
这很重要,别卡死了!通常就是两招:要么让条件变假,要么在循环内用break跳出来。如果你不想一直等着,break就是神器,特别是遇到特殊情况或者达到目标的时候,秒退循环。简单有效!
while(1)和普通while循环有什么区别?
嘿,while(1)相当于启动了无限循环模式,条件永远没结束的意思。普通while要看条件,有真有假,循环数有限。写while(1)更像是你告诉电脑:“别停,除非我让你停!”但千万别忘了用break,不然程序就卡这儿嗷。
while循环怎么理解它的执行过程?
其实你可以想象成“守门员”:每轮开始,它先问条件对不对?如果OK,就放你进去执行任务,任务完了后又回来问“还真吗?”继续放行。条件一假,它就不让你进,顺利结束循环。这种反复判断,是while的灵魂,学会它,循环玩转没烦恼!
添加评论