早晨,懒得做饭,毕竟做饭这种事情随随便便能鼓捣一天。去买点馒头充饥算了。一天这么长,我需要三个馒头充饥才能挨得过去。到了超市,我拿起一个馒头,开始思考:
够三个了吗?显然不够,继续。我拿起了第二个馒头,开始思考:
够三个了吗?显然不够,继续。我拿起了第三个馒头,开始思考:
够三个了吗?看起来够了,停止拿馒头这种行为,继续后面的计划,拿着馒头去柜台结账……
这里拿馒头的过程就是一个典型的循环,很多重复的操作都可以用循环来表达,今天我们来学习在 JS 里面如何写循环。
while(条件){// 条件达成就执行这里;// 执行完再去判断条件是否达成;// 如果条件依旧成立,再执行大括号里的代码;// 如果条件不成立,此循环结束,继续向下执行;}
while
是“当……的时候”的意思,这里是当条件成立就去做大括号里的事情,每做完一遍就再判断一下条件是否成立,成立则再执行,再判断……进行循环。如果不成立,则停止循环,继续向下执行。
举个例子:
let a = 0;while(a<5){console.log(a);a++;}
那么只要 a
小于 5,就输出 a
的值,然后给 a
加上 1。
然后再判断,现在 a
还小于 5 吗?
……
你看,这个过程我换着例子说了三次了,应该记住了哦~
循环经常配合着自增/自减使用,因为这样不断变化,条件才有一刻会变的无法达成,循环才会停止。如果我们的条件永远为真,那循环永无终止,这就是一个死循环,我们要避免这种情况的发生。
这就好像,我们两个吵了起来,然后开始动手,你打我一拳,我打你一拳,你再打我一拳,我再打你一拳……开始了循环。这时候就要有个劝架的出来,终止这种循环,否则,不打破这种循环的状态,就非得打死人不可了。
程序里的死循环,就意味着永无止息的执行下去,电脑表示心累累,开始发热,电扇呼啸,整个 Computer 都不好了。除非你强行杀死这个程序,才能结束。
所以,当我们写下一个循环,首先要想:它能不能自己结束循环。
但是有时候,条件不是靠自增/自减可以表达的,怎么办呢?
let a = true;let i = 1;while(a){i = i*2;if(i>1000){console.log(i);a = !a;}}
我想让 i
不断地乘以 2,直到 i
大于 1000 为止。但是我并不知道需要乘多少次,所以我让这个循环的条件(a
)为真,就是一直运行,这样是个死循环。
但是注意大括号里面,我先让 i
乘以 2,然后判断现在的 i
是否大于 1000,如果大于 1000,则输出 i
的值,并且把这个循环的条件 a
改为相反的状态,那么以前 a
为真,现在就该为假了。于是,条件不成立,循环被结束。
这一章就这么多内容吧,大家自己假设一些循环的情况,并尝试用代码写出来哦~
暂无评论内容