00:00
我们来进入到下一个知识点,也是我们说了语句分成这个三种是吧?诶叫做条件判断,条件分支,还有接下来我们要说的是一个,诶叫做一个循环语句,循环语句什么叫循环呀?循环就是反复的去执行,对吧?哎,那我们先说我们这个需求什么时候会用到循环语句,那举个例子,要做这么一件事儿干嘛呢?诶像我们这个页面中干嘛呢?输出什么呀?诶诶输出连续的这个什么呀,数字,诶连续的这个数字,像页面中输出连续的数字,那我们先不管输出什么,我们先说我要向页面中输出,我得用什么。用哪个方法是不是document.right呀?哎,得用我们这个document.right这个东西是不是往这个body里写的呀?哎,那我要输一个数字,那比如说我来写呢,来一个这个一,然后再写一个来一个二,我一保存,那走你是不是出现一和二了呀,哎一和二了,但是这写完了这一和二吧,这两个呢,它是连一块了是吧?那我希望什么呀?我希望我写完了以后,一在一行,二在一行,然后有三的话,三在接着在一行,我是不是希望他们分着的呀?哎,不是那种连一块的,那怎么办呀,那怎么办呀?诶我们说之前我们学一个这个这杠N行不行啊。
01:27
干恩是不行的啊,干恩是不行的,你要注意我document.right里边的东西是写写哪去的,是写到网页里边的吧,是写到这个body里边的,所以你这个换行要写的是我们这个网页的那个换行吧,网页的换行是什么呀?诶BR,所以你这需要写一个这个什么呀,诶BR标签这样一保存是不是才换呀,哎,才换啊,所以这块你可以怎么写,你可以连着写来一个1234,是不是输出1234呀?哎,1234这能看懂吧,输出一个BR是在网页里边换行的,能明白吗?哎,好,接下来我们再来说,但是你这写个1234不有点麻烦,我是不是还得一个个写呀,我一看这数是不是一直在。
02:08
自增啊,哎一直在自增,那我不如就这么写了,来什么呢?我来定义一个变量Y一个这个什么呢?N等于一个这个诶N等于一,然后呢,不写一了,这来什么呢?N加加这样写是不就行了呀?诶来我一保存是不是出来一个一啊诶写一个是不是除以二啊诶再写几个走走走走走走复制复制复制保存是不是出到14啊诶这想到哪就到哪,诶那这块是这个效果,但是你会发现这有没有什么问题啊,我这输出半天,你看啊,我向页面里输出数字,我输出了14个数字,每一行是不是输出一个呀,你看我这每一行的执行的。是不是都是一模一样的呀,我掉了是不是14次呀,哎,14次,那我们想想这东西麻不麻烦呀,那假设我想干嘛呢?我想输出28次,那怎么办呀,我得复制吧,哎,再复制一遍是不是28次呀,我想输出什么呢?我想输出100次,我得干嘛呀。
03:09
复制100个吧,诶麻不麻烦呀,哎同学说了复制我不嫌麻烦,我就喜欢复制,那我说了复制3756次,复制不麻烦,数是不是麻烦呀?哎,数的就比较麻烦了,所以这块你要注意了,这么写呢,行,但是呢。不方便,那现在我是不是就希望反复的执行这一条语句多少多少次啊,哎,反复的执行这条条语句多少多少次,那这时候呢,我们就可以用到了什么呀,我们这个循环语句,哎,那循环语句什么作用呢?循环语句通过什么呢?通过我们这个循环语句可以什么呢?可以反复的执行一段代码多次,多次是多少次,想多少次就多少次啊,想多少次多少次,那这循环呢,我们分为很多种,我们先说第一种叫什么呢?我们叫做一个while语句,或者叫while循环啊while循环那还是那句话,我们来说一下它这个什么呀,语法还是那句话,一说什么什么语句肯定是什么呀,While语句就是while开头后边跟着一个什么呀括号,然后再来一个什么呀,大块都是这个结构啊,都是这个结构,While里边需要一个什么呢?需要一个这个条件表达式,然后。
04:27
哦,里边是一个什么呀,我们这个语句是这么一个结构,你会发现其实跟我们那什么呀,If是不是一啊,哎,If只不过是把那个while if换成了什么呀,While啊while那我们来看啊,那这个大块里边的是我们这个执行的这个语句,那这个语句呢,它是一个代码块对吧?而循环语句里边的代码块我们还有一个名叫什么呢?叫循环体啊,这一部分叫做循环体,大块里边内容叫做循环体,那我们来说一下它是怎么去执行的,我们说while语句在执行时,你们猜猜先干嘛呀?哎,是不是先对条件表达式进行判断呀?哎,先对我们这个条件表达式进行什么呢?求值判断啊,求值判断如果什么呢?如果值为处,则什么呢?则执行我们这个。
05:27
啊循环体诶则执行我们这个循环体,那我们说然后呢,循环体干嘛呢,执行完毕以后,继续对我们这个表达式进行什么呀判断,如果为说什么,如果什么呢?如果为处则什么呢?则继续执行循环底。然后呢,哎,依此类推啊,依此类推什么意思?执行这个循理之前,先对条件表达式进行判断,如果直为处干嘛执行我这个语句,我这个循环题,然后执行完了干嘛呢?再做判断,判断完了为处干嘛呢?再执行,执行完了再判断,判断为处再执行,执行完了再判断,判断为处再执行,这样是不是就转起来了,哎就转起来啊,就循环起来了,那我们说了,那什么时候停啊,哎是不是条件不满足啊,如果我们这个直为P则什么呢?则终止我们这什么呀?哎,终止循环啊,终止循环我们来看什么效果啊,来我们这写一个我还啊注意啊,这写的时候最好切不要在内部乱眼去测,会有一些小问题啊,来写一个什么呢?写一个这个while语句,然后里边是不是来一个条件表达式啊,哎,我这写一什么呢,写一个这个。
06:52
处呃处,诶咱们再看啊,那刚才我们这有一个变量是不是一个Y一个N等于一啊哎,来我这写一个N等于一,然后呢,这注意啊,这里边先别写document.right呢,那这东西写完document right,你的浏览立刻就死阿里死写个什么呢?Alert alert里边我写一什么呢?写一个N加加,诶我们来看这是什么效果啊,这是什么效果,While里边传了一个这个处,也就是说我这个条件表S是不是永远为处啊处执行循环体,然后干嘛呀,再检查再检查。
07:27
是不是还是true啊,然后再执行,执行完再检查是不是还是true啊,也就是说我这个填码是是不是一直都是true啊,诶我们来看什么效果,CTRLL在外部浏览器运行,诶第一个是不是出来一个一啊,然后确定诶再确定再确定再确定,你会发现我这alert是不是一直在执行啊,而我只是不是掉了一次呀,为什么一直在执行啊,就是因为把它放到了一个什么呀,循环里啊循环里来。咱们再看啊,点点点点点点,你看是不是一直在就行啊,你看我关上一个是不是就就打开一个,哎摁着回车不动了,诶他说不停的往外在冒啊,不停的往外冒,为什么是这样,为什来慢诶我执行这个循环体的作用,是不是就弹出一个窗口啊执行完了一判断A处干嘛呢?再执行,然后再一判断A处干嘛呢?再执行,这玩意儿叫什么呀?哎是不是没完没了啊啊没没了啊我们说来说一下,像什么呢?像这种将什么呢,将我们这个条件表达式干嘛呀,写写死。
08:35
写死为处的这个什么呀?哎循环是什么呢?诶叫做死循环,什么叫死循环呢?该循环,诶不会什么呀,不会停止,除非什么呀,除非你的这个,诶浏览器干嘛呀,关闭啊,除非你的浏览器关闭,一定要注意这个循环干嘛呀,不会停止,那我们说什么呢?死循环在我们这个开发中呢,慎用慎用,你一定要确定你确实需要一个死循环你才用,如果你不需要这东西,你干嘛呀,千万别用,为什么?因为它条件表达式,它永远为处,它这块是不是会永远执行啊,诶永远执行,那我们现在需要干嘛呢?我想着这个循环干嘛呀停止,那怎么办呢?诶我们来说一下,那我可以干嘛呀?诶我可以使用什么呢?可以使用我们这个break来干嘛呢?来诶终止循环什么意思,在最后我来什么呢?来一个这个。
09:36
Take,然后分号break,我们说了是不是可以退出Switch啊,同样它可以干嘛呢,也可以退出循环,那现在我这一写什么效果了。哎,我这一刷新走,你一是不是出来了,再确定有没有了,没有了,为什么呀,一执行完了,到这执行完了,咔,一到这干嘛了,Break只执行一次,是不是退出了呀,你这么写完了有点像谁了。
10:01
是不是像if了,哎只会执行一次,所以while呢,实际上就是什么呀,就是一个可以执行多次的一个if啊,可以执行多次一个if,但是这样你写就不合适了,你这么一写是不是直接就退出了呀,你写循环是不是就没有意义了,诶所以我可以怎么写呢,这么写我这来一什么呢?判断,但是否是什么呢?是否是十,哎我来一个if n等等于十,然后我在干嘛呀?哎,Break什么意思,只有N等于十的时候我才break n不等于十,我是不是一直不执行啊,诶不执行,我这一保存,然后我们一刷新,瞅你一二三四五六七八九十还有没有了,哎就没了,因为到十这我是不是就已经break掉了,哎,不会掉了啊,所以这块注意它是一个什么作用啊,可以用这个break来退出我们这个循环,这一块看懂了吗?诶,它可以反复的去执行多次,那这是一种写法,这种写法呢,我们平时呢。
11:01
也可以用,但是还有一种可能干嘛呢?更常见的一个写法,我们来看看,我们来说一下我们创建一个循环,创建一个循环我们往往什么呢?诶需要三个要件,循环都是具,往往都会具有这么三个要件,第一个需要干嘛呢?诶咱们这么三个步骤吧,三个步骤第一步我们需要干嘛呢?第一步我们需要创建一个这个初始化的一个什么呀,变量,诶会叫什么呀,或者这么写吧,初始化一个变量怎么写,直接挖一个,哎随便写一个等于什么呢?等于零,我是不是初始化一个变量啊,然后再写什么呢?再来干嘛呢?哎,在我们这个循环中,哎,设置一个条件,条件表达式怎么写,来一个while while来什么呢?来一个A小于十,这个A小于十就是一个什么呀条。
12:01
表达式啊,填加表达式,那这块你要注意了,我这么写完了,是不是再去判断,就判断A是不是小于十了呀,只有A小于十的时候,我这循环是不是才直行啊,哎,那就好,你看我这么写来一个alert一个一,那这东西有意义吗?这是什么循环呀?是不是还是死循环呀,哎,还是死循环,你跟写一个处呢没什么区别,所以我们还需要第三个要件,或者说第三个步骤叫什么呢?哎哎在干嘛呢?诶定义一个这个更新表达式,每次干嘛呢?更新我们这个初始化变量怎么整,直接来一个I加加什么效果,诶这样我循环每执行一次ii是不是就自增一个呀,执行第一次I变成一,执行第二次I变成二,直到我I变成十的那次,十小于10I成立吗?不成立循环是不是就停止了呀?哎,那所以这样我这个循环就变成了一个什么呀,变成了一个执行十次的一个循环吧,哎,执行十次的一个循环,我们来看效果,直接来什么呢?来一个alert,一个这个I,啊alert一个I,咱们把这I呢在上面alert。
13:15
我一保存这I应该从几开始出来呀?是从零开始出来呀,哎,从零开始出来啊,我这一保存来0123456789,然后再来是不是就没了呀,哎,就没了啊,因为到十那是不是就不执行了呀,所以注意循环我一般都是什么呀,这么写的,先来初始化一个变量,然后在这定义一个什么呀,条件表达式在里边,你再写一下这个循环体,但是不要忘了还要有一个什么呀,更新表达式,你这个变量一定是要。变的,你要老不变,是不是还是一个循环呀,或者说你这写一什么呀,写一个A减减,这有用吗?这不是也疯了呀,哎,你只能与离你这个条件是不是越来越远啊,哎,越来越远啊,所以注意我们这个三个要件都是必备,必备的初始化表达式,我们叫什么呢?条件表达式,还有一个更新表达式,三个东西缺一不可啊,我们往往循环都是由这个构成的,好,那现在看完这东西,我们说这有什么好处啊,这循环还是拿刚才那么的例子,刚才我们是不是想输出一组数字啊来,然后把这个东西粘过来。
14:21
Ctrl c document right,那我这就不写N了,我直接来什么呢?来一个A加是不是行了呀,那我们来看那这回什么效果呀。诶,我们来看直接看页面,这回就能切过来了啊,边改边看一看是不是从零零到九啊,诶按你说了,老师这东西好像也没比我那灵活,我希望从一开始,那怎么办呀?你让初始化I是不是等于一啊,一保存是不是从一开始啊?诶这是一到九,那我希望能到十怎么办呀?你来一个小于等于十或者小于11是不是行啊?一保存是不是一到十啊?诶我想要3548,那怎么办呀?你小于3549是不是行了呀?哎,你这一保存走你。
15:07
是不是3548呀,你想要多少是不是需要多少啊,你说我要一个5000,那你就写一个什么呀,诶5001吧,或者直接写一个什么呀,小于等于5000是不是行了呀,诶这样是不是就到5000了呀?诶那你想想这种方式是比我们刚才那种方式要灵活多了呀,诶要灵活多了啊,所以这块一定要注意,我们这个循环我们经常会用到啊好,那这一块呢,循环我们就看到这个Y有循环,它可以干嘛呢?可以反复的去执行一个什么呀,反复的去行一个语句啊,反复执行一个语句,好那这块Y循环呢,我们先说这么多,那这里边呢,Y循环说完了,还有一个和Y循环比较比较像的,还有一个叫什么呢?直接说了叫做一个都。While循环,Do while循环我们来说一下它的一个语法,语法是怎么写的呢?来写一下,直接来一个它是一个什么呀,Do,诶,先写一个度,不是写Y了,先写一个度,而且度后边是没有什么呀括号的,直接跟着一个什么呀,大块啊,直接跟一个大块,这个呢是我们这个循环体里边,我们写我们这个语句,然后在最后来一个什么呢?来一个while while里边是我们这个什么呀,叫做一个条件表式,哎,实际上跟while呢差不多,只不过while循环是把条件写写前边了,它是把条件干嘛呀写后边了,哎,写后边了我们来看有什么区别啊,还是拿这个东西我们来看,我现在呢,不这么写了,我把它干嘛呢改成dowell,我们看什么效果,直接来一个do,然后后边跟着一个什么呀,大块里边还是来这么一个document.red然后我这写什么呢?写一个y well来什么呢?I小于等于5000,诶我们来看看什么效果啊,我们来小于十吧,我们看的直接一点。
16:53
直接小于等于十,我这一保存,咱们来看走你诶。有区别吗?
17:00
哎,我们看它。也小于等于十,我这一保存走你诶。是不是一样的呀?来再看do外哦,有区别吗?页面是不是压根就没变呀?哎,压根就没变,那我们说这两个东西有什么意思呢?我们来说一下,说一下它的这个执行流程,执行流程我们说了do while语句在执行时会什么呢?会先执行我们这个循环体,也就是说一上来它就会执行我们度后边这什么呀,循环体,循环体干嘛呢?循环体执行完毕以后,再对我们这个外后的这个条件表达式进行判断,如果什么呢?如果结果为处,则继续执行循环体啊,继续执行循环体执行完毕干嘛呢?继续判断,依此类推。
18:10
啊,以此类推,如果什么呢?如果结果为false,则终止我们这个什么呀循环,诶,那我这描述完了,你看出它们俩的区别了吗?While是干嘛先判断是不是再执行啊,而我的do while是先执行是不是后判断呀,哎,后判断啊,所以这里边我们来说,那实际上什么呢?实际上哎这两个语句呢,类似啊,类似功能类似。不同的是我们这个while是什么呀?是先判断在后执行啊,先判断后执行,而什么呢?而我们这个多well会什么呀,诶会先执行,诶后判断,就这么一个区别,其他的呢都一样,所以你会看到我这个循环,我这个功能用我的什么呀,用我的while写和用我的do well写是不是一样的呀,一样,但是有什么区别,我们来看啊。
19:19
看这了,我说改一个,我不改I小于等于十了,I小于什么呢?I小于,哎,我这直接改一个I来一个11 I的值是不是11啊,那我问你11这个条件满足吗?不满足我一保存是不是啥也没有啊,条件不满足人家压根就不执行来我给住了,把这个呢打开我这一保存走你。是不是还出了11啊,为什么呀,他是先执行后判断吧,他第一次执行管不管你条件成不成立,不管你成不成立,我是不是都执行一次啊,哎,都执行一次,所以他们俩的区别就是什么呢?哎哎,我们的do well可以保证我们这个循环体,循环体老出心好痛,至少执行一次啊,而什么呢?而我们这个while不能啊,而while不能,所以这块你注意你选择的时候,如果你需要保证你的循环体至少执行一次,你就用什么呀,Do well,哎,Do well,如果你没有这个需求,你就用什么呀,Well,哎,那相比来说呢,While会用的多一些啊,While会用的多一些啊,所以这块注意了,这两种呢,对比一下它们之间一个区别啊好,那我们这个while循环呢,我们就给它说。
20:41
完了啊,就给说完了,这里边呢,我现在我先提前跟你们说吧,本来应该待会再跟你们说,现在我先提前跟你们说一下注意事项啊,就是这个死循环的问题,你们肯定忍不住要测试一下死循环,而且我跟你们说了,尽量不要在这里边测,你们肯定也会什么呢,忍不住想测一下是吧?那这个呢,我们先说啊,如果你是这么写的,While里边一个触,如果你写的是一个document.right你就别说了,必死无疑,这个不用测了,你这写1HELLO,这东西必死,因为什么呀,是不是一直在往外写呀,写写写,内存就满了,内存一出览你就废了,所以这个呢,就得强制关闭了,诶,这只能强制关闭了,没辙啊,没辙啊,然后呢,再说一个,这就不是了啊,这你就别试了啊,这你可以试试试就关,关一下也无所谓是吧,但是这种呢,如果你是什么呢?Lert一个一,你在外边测呢,一点问题也没有,就我乐呵呗,我大不了给你关了吧,哎,但是你要在内部这事有点恶心了,怎么恶心呢,来看着。
21:42
是不是一出来了呀,也是说不停往外蹦啊,你说蹦就蹦呗,我就关呗,哎呦是不是点不了啊,诶点不了关不了,为什么?因为他现在在头里呢,他是只能点它去,你不能点它吧,诶所以他这设计的有点小问题,他自己的一个小bug,但是注意这种呢,尽量你别写,但是说我写了怎么办呢?诶首先第一个呢,你要先冷静,诶一定要冷静啊,不要看这东西就慌,是吧,一定要冷静先干嘛呢?诶你先把你的这个鼠标对准这个浏览器的叉子,我们的目标是要关上这个浏览器,但是你是点不着的,但是此时你要冷静,因为你不不是说非得点才能关的,你可以敲什么呀,敲回车,左手敲回车,同时右手点他的咔,你得快一点就没事了,然后把这个给它注掉,诶,然后就OK了啊,就OK了啊,所以这边一定要注意啊,要注意这里边有个小技巧。
22:42
是吧,诶手一定要端,端起就OK了啊,端起OK好,那这一块是我们说的这个while循环,咱们就给他说完了啊,While循环呢,这块有一个小练习,你们可以先尝试去思考一下啊,我们来就一个练习。零四我们一个这个while的一个练习,这个练习呢,来就这么一句话,哎,假如投资的这说字写字啊,投资的这个年利率为5%,这玩意儿挺高的是吧?哎,然后呢,试求我从1000块钱增长到5000块钱,需要花费多长时间,这题能听懂吗?哎,那现在我年利率5%什么意思呀?我1000块钱1000块钱我存一年,年成多少啊,变成1000是不是乘以哎叫1.05吧,1000乘以1.05,然后再往第二年是不是,这应该多少啊,是1050吧,哎,第二年是不是变成1050了,第二年变成什么呢?变成1050是不是乘以1.05。
23:57
五啊,诶1.05,然后接着往下算,这值是不是越来越大呀,一年涨一点,一年涨一点,问你什么呢?增长到5000块钱需要花费多少年,诶需要还有多少年,你可以干嘛呢?你可算的是吧?诶尝试去算一下,这题能看懂吧,哎,这块需要用到我们这个while循环啊while循环下午呢,我们再说啊,下午们再说来停一下。
我来说两句