00:00
咱们刚才来说的是一个这个while循环,那其实我们在这个开发里边,其实用的最多最多的还是我们这个什么呀,叫做一个诶for循环啊,另一种循环,我们来说一下叫做一个负循环。哎,或者叫for语句啊,For循环都行啊,它也是一个循环,但是其实呢,循环语句它也出不了什么花,都是那个都是那个套路啊,都是套路,那我们来说一下for循环呢,哎,For循环,哎,For语句哎也是一个什么呀,哎循环语句它也什么呢?呃,也称为叫做一个负循环啊,也称为负循环,那这里边我们来说一下负循环的作用和外部循环呢,其实是一样的,这两个循环本质上它没有什么区别啊,没有什么区别,那我们现在举例子啊,我们来说我们现在创建一个外部循环,我们创建一个什么呢?创建一个这个执行十次的十次的这个while循环,那我们这块是怎么创建的呀?哎,首先我们第一个我们先来干嘛呢?初始化一个什么呀,初始化表达式,我们要初始化一个变量吧,直接Y一个这个I等于零啊,Y一个I等于零,然后第二个呢,我们来干嘛呢?哎,创建一个循环。
01:16
来干嘛呢?来定义我们这个什么呀,叫做条件表压式,调压式,来一个这个什么呢?YY,我这来一个这个I小于十啊I小于十,然后在这呢,诶在这诶设置我们这个叫做一个更新表式,另表是我直接来一个alert,一个这个I加加是不是这么写的呀,那这么写的啊,所以注意我们每一个循环都有三个要素,一个是我们这个初始化表达式,还有一个是我们这个什么呀,条件表达式,还有一个我们叫做更新表达式啊更新表达式,那所以现在我创建完这个循环,它会执行几次啊。哎,会执行14,所以我们来看I的值应该是零,一,一直到九,是不是正好14呀,哎,正好14啊,一个14循环,所以注意循环是有三个要件的,初始化表达式这什么呀,条件表达式,还有一个更新表达式啊,三个东西啊三个东西,那我们来说为什么要说这个,我们说什么呢?哎,我们说在我们这个while循环中,While循环干嘛呀,我们这个初始化表达式跟这个什么呀,条件表达式跟这个更新表达式,它是不是没有固定的位置啊,哎,固定位置我想写哪是不是写哪啊,哎,我们说了,哎这样写吧,在我们这个负循环中,哎,干嘛呢?哎为我们提供了什么呀,专门的这个位置。
02:42
哎,用来干嘛呢?用来放我们这个三个表达式,哪三个表达式,来来回顾一下,第一个是我们叫什么呀?初始化表达式,第二一个是我们这个条件表达式,第三个是我们叫做一个更新表达式,诶在我们这个外循环里,这三个嘛呢,你就想放哪基本上就放哪,而在什么呢?在循环里专门给我们提供位置来放这些东西,那我们来说一下负循环的一个这个语法,语法我们来看一下,来一什么呢?来一个for循环,For循环里边第一个,诶一说什么什么语句,什么什么循环这块是不是都是一个for,后边跟着一个括号啊,然后这还有一个大块啊,都是这么一个结构,不同的是什么呀?其实这个大块里边也都是什么呀,也都是语句不同在哪啊,就是这个小块里啊,小块里负循环需要在这个块里需要填三个东西,第一个东西是什么呢?是我们这个初始化表达式。
03:42
哎,然后这来一什么呢?分号表示这个表达式写完了,然后是我们这个条件表达式,然后来一个分号叫做什么呢?我们这个更新表达式啊,更新表达式实际上跟作用跟这个Y循环式一模一样的,只不过它干嘛呢?把这三个表达式是不是统一写到了这个负后边那个括号里啊,哎,括号里那我们来看看,那我们来把刚才写的Y循环改成负循环,要怎么改,直接来看了,那怎么写呢?来一个负循环,负原后边括号第一个应该是初始化表达式,那我这里边谁是初初始表式,说Y的一个I等于零啊,所以这个是我们这个初始化表达式,我这直接写一个Y一个I等于零,然后来一个分号,这就表示一个初始化表达式,初始化表达式完了是什么呀,条件表达式,也就是我们哪个是不是I小于十啊,哎,我们这个I小于十啊,所以这个分号边我们来一个什么呢?I小于十啊,小于十。
04:42
然后再来一个分号,最后是一个什么呀,更新表达式,那我们这哪是更新达式,哎,就是我们这个I加加,所以最后来一个I加加啊I加加,所以呢,这个负循环我们就写完了,它同样也是一个执行十次的循环,我这来一个alert,一个I,它的效果跟我们上边这外形的效果是一样的啊,是一模一样的,我这一保存,然后一刷新零是不是也是到九啊,哎,也是到九啊,这个循环跟上面的外循环作用是一样的,都是一个执行十次的一个循环,但是它就什么特点啊,它把这些初始化表达式也好,条件表达式也好,还有更新表达式也好,是不是都统一写到一块来,哎,它的结构是不是更加的清晰啊,诶更加的清晰叭,外循环的结构更加的一个清晰,所以复循环门会使用的什么呀,更多一些啊,复循环我们使用的更多一些,那好,那这块看到了,那我们来说一下这复循环它是怎么玩。
05:42
玩的呀,复合循环的一个执行流程是什么呀?执行流程诶那我们来说他第一步应该先干嘛呀?先执行哪个,我这有三个东西,我这有四个东西,初始化表达式,条件表达式,更新表达式,还有一个语句,也就是我们这个循环体对吧?它是先执行谁呀?哎,它第一步是先来执行我们这,我给它标上第一步是我们这什么呀?初始化表达式干嘛呢?执行我们这个初始化表达式干嘛呢?诶初始化我们这个变量,那在我们这儿就是初始化我们这个变量,哎,所以整个语句第一个先执行的是谁啊,是他吧,哎,是他第最先执行的,然后那第二件事儿呢?第二件事呢,第二个应该谁啊?哎,初始化完了,我说要判断了呀,哎,所以第二步干嘛呢?执行我们这个条件表达式来干嘛呢?来判断什么呢?哎,判断我们这个。
06:42
是否执行循环啊,是否执行循环,如果什么呢?如果为处则什么呢?执行循环,哎直行循环,那找谁了,是不是语句这啊,也就是我们这什么呀,循环循环体吧,哎循环体,所以这一块呢,是我们这个第三步啊执行我们这个语句,那我们来说执行循环我们这个第三步,那我们还有一个呢,叫什么呀,如果为force,如果为force知个吗。
07:17
如果为false嘛,条件表是为false了,是不是终止循环呀,哎填满是都是false了,循环就干嘛了,终止就什么了,就不执行了啊,就不执行了,所以注意他们的一个流程,第一步初始化表示,第二步条件表表示,然后判断结果,如果为处就执行什么呀,我们这个循环,我们这个循环体,然后呢,我们说循环底执行完了呢,循环底执完了,我们第四步干嘛了?第四步干嘛了?哎执行我们这个什么呀,执行哎更新表达是,所以在这更新表达式,我画了一个什么呀,画一个四更120帧完了吗?更一二十帧完了吗?
08:02
哎,更新表达式执行完毕,完了,诶继续重复我们这个第二步,啊,继续重复我们这个二什么意思,我们来再分析一下它这个流程,咱们拿这先说,首先第一步执行初始化表达式,这是第一步初始化表达式执行完了,执行我们这个条件表达式进行判断,如果为true,咱们先说,如果为for,这事就完了,就终止了,就不执行了,如果为true,则执行我们第三个语句吧,也就执行我们这个循环体,循环体直行完了干嘛了。执行我们这个更新表达式,更新表达式执行完了再执行我们这个条件表达式,条件把达式执行完了,再执行循环体,循环体执行完了再执行更新表压式,更新表达式执行完了再执行条件表压式,然后再执行循环体,这样是不是又转起来了,哎这样又转起来啊,所以注意哎我们这块它是这么一个流程,那我们刚才这是流程什么呀?首先一上来来了一个什么呀,Y一个I等于零,初始化表达式,然后呢,这做条件判断零小于十成不成立啊,成立执行循环体,你注意了,这时候是执行循环体还是执行这更新表达式。
09:26
循环体更新表达式指代什么呀?循环执行完了以后再执行吧,哎,执行循环体,循环体执行完了再执行,我们这个更新表达式,更新表达式执行完了再来判断,判断完了再执行,执行完了再更新,更新完了再判断,这样是不是就转起来了,哎,就变成一个循环啊,就转起来了,好,那这个呢,是我们说这个负合循环的执行一个流程,它跟外表循环其实本质上没有区别,只是它的一个结构呢,更加的什么呀,更加的清晰啊,更加清晰,那这里边你要注意了,我这里边有一个东西只执行了一次。
10:01
诶是不是初始二小时啊,所以这块你要注意注意什么,我们这个诶初始化表达式只会执行一次,什么时候执行的,就是第一次执行的时候,诶第一次的判断的时候执行的,诶剩下的干嘛了,都不会再去执行了啊,不再去执行了,而且注意更新表达式是在我们这个代码块,我们这什么呀,循环体执行完了,它这才执行了,哎一定要注意他们的这个顺序啊,一定要注意他们这个顺序,好那这看完了,然后我们来说呢,诶其实它跟负循环其实是什么呀,一模一样的啊,一模一样的,什么叫一模一样的,我们来说一下我们这个负循环的什么呢?负循环中的这个三个部分都可以,什么呢,都可以省略也可以,什么呢,也可以写在这个什么呀,外部什么意思,看着我这来一个负循环,负循环里边什么呢?我这直接来一个分号里边我就来什么呢,来一个I小于十,你注意了,我这不是写了分号是写了呀。
11:02
啊,大家注意前边我写没写啊,没写就说我这个初始表达式我是么压根没写啊,然后这个更新表达式我写没写啊,也没写干嘛呢,我写到外边来一个Y一个这个什么呢?I等于零,然后呢,我这来一个alert一个什么呢?Alert一个I加加,我们来看这个写完了是不是跟我上边这个Y要是不是一模一样了,除非多除了多了俩分号是吧,剩下都是一模一样,所以这块效果呢,它也是什么呀,也是一样的,看见了吧,也都是一样的啊所以注意循环呢,没有什么区别,这两个东西呢,负合循环能干的事,Y要循环也能干,Y要循环能干的事儿呢,负合循环也能干,但是只不过什么呀,负荷循环的一个好处就是它的结构比较什么呀,比较清楚比较清楚,哎,甚至说什么呢,我这么写看着啊,来一个负循环走走写俩分号,然后剩下的什么也不信,乐的一个hello,诶,那我们来说这什么效果呀。
12:01
什么都不写,注意啊,分号写了,其他什么都没写,表示什么呀,这儿空着呢,这儿空着呢,是不是这也空制的表示我那三个表达式是不是都空着,控制不写呀,哎,控制不写,那这是什么效果呀,保存咱们来看看,一刷新走走走走走是不是没完没了了呀,那这是什么效果呀,这是一个死循环啊死循环,所以注意。如果如如果什么呢?如果在我们这个什么呢?负循环中,不写任何的这个条件,哎,不写任何的这个表达式,则什么呢?哎,只指什么呢?只写两个分号,注意啊,什么都能省,但是分号你可省不了啊,分号不能省的啊,只写两个分号,此时什么呢?此时我们这个循环是一个什么呀,是一个啊死循环,什么叫死循环呀,会一直执行下去,哎,一直扔下去,所以这个呢,还是两个字慎,慎用用,哎慎用,除非你确定有需求的时候你用,不然呢,尽量能也用就别用啊,能灭就别没用好,那这个呢,就是我们这个负荷循环,那负荷循环呢,以后我们还是会用的比较多的,比这个外循环要多很多,还是它的特点,就什么呀,比较较。
13:27
直观,你像这负情况,我一眼就看出来干嘛呀,执行几次呀,十次,一眼看出直行十次,从零开始是不是到九啊,哎,所以一眼就看出直行十次,你要是执行一个100字,我就来什么呀,100,你执行1000字,我就来个什么呀,1000比较直观,一定要注意,我们这习惯都是从零零开始,你说我写个一行不行,写一也行,但是这块就不直观了,这次只有几次啊,九次啊,九次你需要减一下,或者你给改成什么呢?改成小于等于十也行,这还是十次,对吧,所以这块注意啊,我们习惯都是什么呢?I等于零,但是一般特殊,有些情况我可改,这东西灵活一点,不是这么死性啊,不是死刑,好,那这个呢,就是我们这个负循环,也是一个比较简单的,然后呢,我们来看看这个练习。
14:15
零七我们来说一下我们这个for循环的一个练习,什么练习呢?来我们这儿看看啊,这个练习这来复循环三道题,第一题先看它script的标签,我们这来写一个叫什么呢?让你打印一到100之间所有。奇数之和,诶这道题简不简单呀?诶那这个东西啊,其实这题你一看应该觉得挺简单的是吧?打印基数,基数是不是就1313579是吧?诶13579,那打印基数之和,那么可能暂时还想不到对吧?打印基数可能也暂时想不到,所以你做这个题的时候,你要干嘛呀,你要分步骤,咱们先干嘛呀,先剪这个简单的来我们来看这题是要分这么几步,第一步干嘛呢?诶打印一到100之间基数咱们做不了,可能我先干管呀,我先打印一到100之间的数行不行啊,一到100之间的数我是不是写一个学完就行了呀,来一个负循环Y一个,那既然是一到100,那I最好就从从一开始啊,从一开始那一到100,那我I是小于等于100或者小于101是不是都行啊,然后再来一个I加加,那现在在我这个循环体中,I的值就是什么呀,是不是就是一到100啊哎,一到100来我直接。
15:42
点落个一个,哎,我已保存,咱们来看。边改边看,清空一下,咱们一刷新一看。最上边是不是我们这个一呀,诶一二三四五六八九十,然后最后是我们这什么呀,100是不是取到了呀?好,那现在我们已经获取到了一到100之间的这个数,诶又来需求了,我得干嘛呀,这I现在我不管奇偶是不是都打印啊,我现在干嘛呢?我只打印奇数,那也就说我要判断什么呢?这个哎是否是奇数,哎只有是奇数的时候,我是不是才打印啊哎,那怎么办呀?诶那我们说了,我怎么判断一个数是奇数啊?诶二是不是奇数啊哎二是不是奇数啊,偶数吧,二除以二是不是得一啊,有余数吗?没有余数是不是能被二整除的就是偶数啊哎,不能被二整除的是不是就是就是奇数啊?哎,我们来说一下什么叫奇数啊,不能被二整除的这个数就是什么呀?就是奇数,哎,那问题来了,那我要判断谁呀,我是要判断I。
16:53
I能不能被二整除啊?哎,那我怎么知道I能不能被二整除?I如果除以二有余数,这叫不叫整除,哎,叫不叫整除,是不叫整除啊?哎,所以这里边我们来一个if来什么呢?来一个I摩也二如果是等等于零,证明什么?是不是被整除了呀?哎,被整除了证明I是偶数,那我来什么呢?不等于零,I模一二不等于零,也就是说I除以二是不是有余数啊,有余数你还是不是偶数了,就是什么了,不就是奇数了,哎,就是奇数了啊所以注意,如果A除以二有余数,则证明我们这个I是什么呀?哎,奇数,此时我们才干嘛呢?我们才输出这个,否则我是不是不输出啊,那这样经过了这么一个判断,在我的这个控制台里,我还能不能看见偶数了,是不是看不着了呀?
17:53
来我这一保存,咱们来看。诶,一三五七九十一十三十五十七是不是都是基数啊?哎,都是基数,好基数有了,那接下来呢?接下来干嘛了?是不是让咱们求和呀,你不光把这数都算出来,你还得把这数的和,你干嘛呀,求来我这算吧,一加三得四,四加五得九,九加七得十,66加九,25完了再往后该不会算了是吧?那口算肯定不行,那我能干嘛呀?我现在这个A有多少个?
18:28
是不是好多呀,那我需要把这堆I给它一个一个给它是不是加起来呀,那你要加你就有一个地方,你是不是得保存这个结果呀,哎,保存这个结果,所以在循环的外边,在循环在外边在这儿我来干嘛呢?我来创建一个变量用来哎用来用应用来来用来保存我们这个基数之之和吧,直接来一个挖一个sum等于什么呢?零完了默认值是不是等于零啊,哎,然后我这来一个萨等于一个萨加,哎,这能看懂吗?哎,我是不是一直把这I往萨里加,第一次I是几,I是一,那萨是不是等于一啊,第二次再加,哎,可能是三了,那我一加三是不是等于四了呀,经过一次一次累加,是不是把这个和是不是都。
19:22
加进来呀,所以最后sum是不是就是我们这个和呀,诶来我们这来输出一下,输出一下这个sum,直接来一个cancel.log一个这个呃,基数之和为,然后我这来一个冒号,我加上一个这个sum,然后一保存走,你是不是一个两千五啊,哎两千五哎这个萨就是我们什么呀,那个基数之和啊,那个奇数之和,好那这一块你看到了,这块看懂了吗?你感觉你们都麻木了似的,一点反应也没有是吧。听明听没听明白是吗?啊不用看是吗?来咱们先看看吧,你们是完了是吧,咱们再看啊这一块注意了,我这变量萨,我是定义到了什么呀,负循环的外边,诶我一想这定义外边多多孤单呢,咱们给它定义到里边吧,定义到里边行不行?哎,定义到里边会有什么情况,这个会执行多少次循环,每执行一次,它是不是执行一次呀,所以这哥们是不是一直都是零啊,诶你执行零你加完了,然后一初始化是不是变成零了呀,所以你这一保存走你是不是零啊,所以注意这个东西一定要定义在负循环的外边,或者说你说我不定义外边定义哪了。
20:43
在这这是不是也只执行一次呀,来个逗号,来个sum干嘛呢?等于零,相当于我初始化,初始化了两个变量吧,这样行不行啊,也可以啊也可以,效果是一样的啊,效果一样的啊,所以注意这个东西不能往这个循环里写,往循环里写会初始化多次啊多次,好,接着再往下看,还有一个题呢,这题就有什么了,打印一到100之间所有七的倍数的个数解。
21:10
总和什么意思呀?跟刚才那题是不是一样啊,哎,一样的啊,大会自己来做一下啊,自己来做一下,还有一个呢,叫什么呢?叫水仙花数,水仙花数指一个三位数,它的每个位上的数字的三次幂之和等于它本身,诶人家给你举个例子,这这三它它这个这三是表示什么呀?我们这么写吧,我写间号来表示它这个三次幂这样写啊,这样写表示什么呀?一的三这是什么呀?一个数叫153对吧?它十,它百位上数字是一,十位上数字是五,个位上数字是三,一的三次幂加上五的三次幂加上三的三次幂正好还等于谁呀?153,那我们说了153就是一个什么呀?水仙花数,然后干嘛呢?让我们打印所有的这个水仙花数,诶,那这个题你们去想一想,怎么去做啊,怎么去做,应该注意前提它是一个什么呀,三位数啊三位。
22:11
好,我们来听一下。
我来说两句