00:00
好,那么下一个内容呢,就是while循环,Wi循环,在我们SC里面呢,它并不推荐使用,但是告诉大家他仍然在用,有些程序员说,诶说SC里面没有外循环,或者说Y循环被禁用了,这些说法都是不对的,没有这个说法啊,我先给你们看一下,的确是有的。先给你们看一下,他在这里面历史就用到了Y循环,先把这个疑惑给他打消,因为我们班有些同学可能是学过一点看了的。他可能听到有这种说法,诶是不是,呃,因为这个Y循环它会用到外面的变量,是不是就不让用了,不是这样子的啊,先给大家看一下,我随便举个例子。比如说我给同学们写一个Java,呃,就是就是VR啊,List等于一个list,好,先给大家看一下它的源代码,里面就有这个for循环精确。走一个。好,我们先进到这个源码。
01:00
这是它的,诶进到这里面去啊,进到它的一个源码,我给他搜一下while。同学们可以看到它在这里面大量也用到了Y循环,没没有说没有,没有哪个说法说不让用Y了啊,因为有些时候你不用Y,你是很难用for循环实现的了的,只是我们开的设计者呢,他推荐使用for循环。但是你外循环你不用有时候搞不定的,好说Y循环仍然是有的,好先把这个给他说清楚,那下面呢,我们就来,呃,就来说这个外循环的语法来看一下。那么Y循环呢?它的基本语法跟Java一样的。就是循环条件,循环体和循环变量的迭代,那既然你用到循环变量迭代,那肯定就会用外面的,这个循环变量一定是在外面定义的好,那么我们用Y2循环快速的写一个案例就行了,输出十句你好上轨,用Y2循环来实现,来快速的走走一个。
02:02
好,我新建一个包包。新建一个包,对,那么这个包呢,我们就叫while。Well,因为它是个关键字,所以我写my well。好,同学们,新建一个文件叫while DEMO对吧,零一。好的。写到这里来。好,走一个案例,那这边是输出十句句。啊,十句,哈哈。啊上硅谷好,那么现在马上写,首先第一步啊,定义循环的变量,定义这个循环变量。循环变量,这跑不了,所以我先定一个,既然是循环的,这个变化肯定要变,所以用VAR,那么我们就写一个I吧。等于零啊,假如等于零,好,现在可以写了Y循环,Y循环如果I小于十。
03:02
如果I小于十,我们就去输出这句话。啊,就输出这句话叫做哈上硅谷。然后呢,我加上一个I。注意第二个循环变量的迭代定义循环变量,这写错了。变量好,第二个这一步呢,要循环变量的迭代。迭代就是变化。啊,迭代啊,同学们原先应该是学过这个东西的,那就是I加等于一。好就OK了,那你不停的做看,这是循环变量,这是循环的条件,这是我们循环体,这是循环变量迭代四个要素,一个不少啊。这个地方就是我们循环的条件。二循环条件。好,这个相当于是循环体啊,这就是我们循环体。循环体好就OK了,我们运行一下吧,同学们。
04:00
运行过来应该输出十句,呃,但是呢,标号是从零开始的。讲完了不爱循环,我们就说这么一点啊,没,没,因为没什么太多需要说明的。没没什么,就说,呃,特别的地方我就我就直接给他过了,好同学们,我把这个呢,先给同学们板书到我们的笔记中去,这是while循环的一个说法。好,给大家写到Y循环控制。While循环控制WH。I。好,我们新建一个啊,新建一个这个标题二。标题二在哪去了,看看啊标题二。在这好来写到这基本语法给同学们说了。对吧,哎,基本语法循环变量的应用实例。啊,这流程图这个呢,我待会把这个流程图来看一下就可以了,案例粘过来。
05:01
代码。啊,代码如下。代码如下对不对。好,把代码的给他粘过来就行。很简单。好先给先给大家放这循环变量,好这个就过了啊,那么Y循环有哪些地方需要注意呢?循环条件是一个布尔类型,不说了,判断在执行也OK啊。与if语句不同,While语句本身没有整个while语句结果是一个unit,它没有返回值。还有一点呢,在这注意听,在这个SC里面呢,它不推荐使用where,而是推荐for循环,知知道有这个概念就行了,但是没有说是禁用。刚才我也举了例子了啊,不是说禁禁止使用,而是说推荐能使用for循环,咱们就不用while,就是这个意思,好好注意这个细节,那有些同学说老师为为什么呢?我多说一句啊,可能有些同学喜欢问,为什么说,为什么他不推荐使用where,要使用for循环呢?因为是这个原因,大家看到刚才大家还记不记得我们在讲for循环的时候,我说过这个I。
06:14
其实是一个V类型的。他在整个这个过程中,你看整个这个或循环过程中,他尽量保证。保证我这个for循环的变量没有使用到外面的变量,他要尽量保证这个。当然有同学肯定会觉得非常奇怪,我原先学到这儿,我也觉得很奇怪,我说怎么可能呢?你一个函数,就算你以后写一个函数,函数肯定要有输入值啊,你有输入值不就会用到外面的吗?我告诉大家是怎么处理的啊,这个开的设计者他非常提倡用函数的递归来解决问题,而当你用递归的时候呢,那么这个函数在使用的时候,它这个外部变量就通过递归在内内部进行变化了。
07:00
啊,他是这样来处理的,但是我们很少有人做完全做到不使用外部变量,这个很难,这是开了提出的一个概念,叫纯函数的概念。但是这个概念也只能是个概念而已,目前啊,它是一个纯函数概念,就说。呃,SKY设计者,他的一个理想的状态是。或者是他一个设计的理念是什么呢?他希望我们用到的这个for循环也好,Y循环也好,还有do也好,或者函数也好,尽量做到不使用到外部的变量。啊,那时候都是他不可能吗?他真的可以做到,他怎么做的呢?他用那个函数递归。因为函数递归里面那个站里面东西它是通过递,你看那个函数,同学们还记不记得,你们以前学过那个,用函数来求那个斐波拉奇数,还记得吗?记不记得,你看它的那个变量的变化是在函数内部变化的,是是不是,你是不是有个I减减或者I加加那个变量,它的函数内部变化。并没有通过这个函数,它最多就传一次里面的变量就直接在函数内部变化了,其实他提成这个只是这个呢,要用到,要用到完全用到这个极致,还需要同学们要要要去掌握一段时间哈,我我我只是把这个概念先抛出来。
08:18
只我我我的意思就是说,将来如果你们遇到有些干了程序员提到这个概念,你就想起韩老师说过,哦,原因是因为scar设计者,他建议或者推荐咱们这个函数或者是for循环,尽量不要使用外部变量,那怎么解决呢?你要使用变量,变量可要变化呀,怎么办呢?用递归来变化。就函数去自己调自己,然后那个函数递归的改变这个值,然后在函数内部进行变化,如果我这句话是听懂了同学,那说明你在学学那个递归的时候,应该还是还是能够应该想到那个地方了啊,啊,但是你要完全做到这一点呢,是需要一个很高,需要有一点这个基础的啊,需要有一点基础的好,那么我先提这个概念,好同学们,我把这个Y循环的这四句话给各位朋友先整理到这里好的。
09:12
那这边呢,我们整了一个标题三,一共有四句话,第一句话。哎,第二句话。第三句话就是while循环没有返回值,第三点就是推荐使用或循环。啊,不是禁用,而是推荐。好的,Y循环我们就讲到这里。
我来说两句