00:00
那for循环结束以后,我们来提一下第二种循环结构,叫做while循环,然后下边来关注一下while循环如何使用,新建A05下啊,新建我们一个文件,哎,关于while的一个测试了,CTRLCCTRLSCTRLV一下。Well,这个循环的一个使用,好,嗯,外号循环使用,首先呢,我们说第一个问题,就是我们前面讲说任何一个循环都会有几个要素把这个拿过来啊,这个CTRLC,诶,任何一个循环,只要是循环一定有这样的四个要素,那下边呢,我们就关心一下,对于外循环来讲,它的这四个要素该怎么去分配啊,这就是我们的外的一个结构,行,那这个while呢,整体上来讲也是这个样子的,你把这个while改成for好像挺像的啊,哎,就是都是一个小括号,一个大括号,但是这几个部分怎么放呢?这个一呢在这,诶诶。
01:26
一在这啊叫初始化条件,然后这个小括号呢,就放一个放二,然后呢,这里边嗯,大括号里放了一个三叫循环体,然后呢,四呢也放,这叫迭代条件,所以呢,这里边要小心点,这个大括号里边呢,三跟四都有啊,如果你要是把四给丢了,有可能出现什么情况,对,有可能就死循死循环了,哎,那下边呢,咱们就写一个具体的例子呗,是吧,比如说咱们现在还是啊要便利100以内的所有偶数。
02:11
那我们也是得先定一个变量对吧?哎,我这个叫I还是从一开始,然后呢Y循环,然后I呢判断它要小于等于100,满足这个条件我就进去,进去的话呢,看看你这个I呢,是不是偶数,嗯,我I呢就取目二是不是等等于零,如果是零说明是偶数,我们呢就输出输出我们的这个I,诶好,这个时候呢,我现在去执行,你说会出现什么情况,Java c well test.java编译编译没报错啊,编译没报错,理解吧。
03:00
编不会说说诶你没有四,他哪知道我没有四,哪是四是吧,他不知道啊,哎,然后呢,在Java well test,你看看这好像没反应是吧,实际上这时候程序是不停的在执行,只不过呢,它没有输出结果而已,因为咱们这个一呢,这个一服老进不去嘛,啊我这个CTRLC一下啊把它停掉,比如说我这要改成个二啊保存一下,这个时候呢,编译也行是吧,诶CTRL一下按CTRLC一下,这就死循环哈。这叫死循环,这肯定不对啊,就是因为你把这个四给丢了,就是我们说这个I加加这个事,哎,这个改成个一吧,从一开始啊,嗯,所以大家刚开始写这个Y循环的时候,特别小心,就别把这个四给丢了啊,嗯,这个我们写一个说明,嗯,就是写外循环,哎千万小心,哎不要嗯这个丢了这个循环的这个迭代条件啊。
04:16
啊说一旦丢了哎就可能导致啊死循环,哎,那当然这个死循环我们再多说一句,就是咱们写程序的时候呢,那是要避免出现死循环的啊,我们写程序嗯,要避免哎出现死循环啊这个原因呢,就是咱们那会也讲过了,哎这个咱们写的这个程序呢,这边都包含这个叫算法嘛,就是你这其实就是一个算法啊,哎这个算法呢,我们有几个特征,其中有一个特征呢,要保证这个算法的叫有限性啊,你不能够让它这个无限的去执行啊,这是不可以的啊这是一个简单说明,呃,通过刚才这个例子呢,其实大家也看到了它的这个执行过程啊,这个执行过程呢,其实跟我们的for循环呢,是完全一样的,首先呢,也是先是个一初始化一下,然后呢,紧接着判断一下这个二是不是满足。
05:16
二如果要是满足进去,执行三,三完了以后呢,得得迭代一下,得有个四,四完了以后再判断一下此时的二是不是满足,满足呢,再三完了,再四,四完了再二等等等等等,直到。直到这个二呢,返回的是false。就是我们这个所谓的bird型是吧,哎,直到你是个force的时候呢,就终止。那这就是我们这个外循环的一个结构啊,一个结构啊,那。它的这几部分呢,其实跟我们这个for呢,就是摆放的位置稍有不同了,就咱们昨天讲的这个for打开一个啊,这个for呢是1234,它是这样放的,这个while呢是这样放的,对,就这样的一个结构啊,那这里边呢,我们要再说个点呢,你就该说第三个事了,什么呢?就是for是一个循环,While也是一个循环,就像咱们前面讲了一个分支里边一个一,一个Switch kiss,下一个问题就涉及到它俩转化的情况了,那这里边问题就是能用for写的一定可以改成用while吗?
06:28
能用wild的一定可以改成用for吗?大家觉得是什么样的?你感觉这个他俩有没有什么这个使用范围上的,说你那个使用的情况范围广,我这个范围窄,有这样的一个感觉吗?好像没有是吧?哎,所以说呢,这两个结构呢,我们这写一下就是for循环,哎和我们这个外循环呢,哎,它两个循环呢,是可以相互转换的,就是你能能用for的全都可以改成用while,能用while的呢,也全都可以改成用for,这就叫相互转换。
07:15
啊,那有同学可能会想说,那为什么还等于俩是吧?他可能比较高兴吧,哎,其实你要非说为什么定义俩呢,其实我们后边的写循环写的会比较多,呃,有的时候呢,我们用for写呢,看着这个结构比较舒服一些,有的时候你用while写呢,看着就舒服一些,其实也仅此而已啊,它一定可以相互转的,你想想是循环,它给我这四部分,你把这个for写的这四部分你换换位置,改成这样的格式,这不就是转换过来了吗?哎,就这样个原因啊,那你要再细的一个点,非要说这俩转化当中有那么一点点的不同吗?也有那么一点点的不同。就是这的的问对一个这个是算在里边是吧,这个算在外边了啊,那么这算有什么不同啊。
08:17
对,就是你看咱们昨天讲过这个for啊,昨天咱们讲for的时候呢,你看我在这个for里边定义过I,你会发现我在这个for里边我又定义它俩不冲突了,咱们提过说你这个I呢,是不是只在我们这个for循环内有效啊,对,就是你所谓的这个初始化条件啊,但是对于我们这个呢。我在这写的,你说我出了外号循环以后可以掉吗?对那太可以了,诶这样我在这输出一下这个,哎这个那问一下,顺便问一下结果是多少,一百一百还是101 101吧,哎,因为你这不是到100的时候呢,又加价了一下,变成101了啊一判断不满足出去的。
09:12
哎,所以变成101了,来看一下啊。编译原形,哎,这不一百01吗。哎,至少呢,我们刚才编译过了,你会发现呢,也就是说这个I呢,我们说出了这个循环以后啊,准确的说叫while循环啊,那以后呢,哎,人可以调用,因为我这个I呢是定义在外面的,跟你没关系啊,我又不是定义在你Y里的,所以说呢,他俩可以相互转化,非要说有一个小的区别的话,哎区别的话呢,那就是关于负号循环,哎和我们这个Y号循环,他们的这个初始化条件的一个作用域不一样。啊的初始化条件部分的这个作用,或者叫作用范围吧,哎,不同,那一个呢,出了for就不能掉了,一个呢,除了for,呃,除了while呢,还可以再掉,仅此而已,行,那咱们呢,相当于把这个while循环这个结构呢就讲完了啊,基本的注意点也说清楚了,大家呢,就要记住这个结构,哎,就行。
我来说两句