00:01
为了增强同学们对Y循环的一个理解呢,我们来做三道关于外循环的课堂练习题。同学们,如果说学到这儿呢,你也可以先暂停一下视频,自己先做一做,然后再看老师的这个答案。好,那现在我就来给大家评讲一下,好吧,那打开这里我就直接写代码了,三道题。根据前面的while循环的基本语法,我们来完成whilece ER。C。好,我现在呢。来回车我们来写一下,同样我们先把这个后缀改一改啊。这边呢,我们改成C,前面这个地方也是一样,刚才我们没有改。因为我们已经讲过了,CPP和C呢,有很多地方是兼容的,所以说你不改就说跑起来也是没问题的,Include include std。Avoid主函数。
01:04
写到这里来。那这边呢,我们先来完成第一个题,他说打印一到100之间所有能够被三整除的数,这太简单了,太简单了,我们根据Y循环的它的一个基本语法来看,首先我们来整一个变量出呃,循环变量,那假如我们循环变量是I,从一开始嘛。对不对,那么它结束是从哪个值结束呢?比如说我们写个N,比如说它最大的是max到100。那开始写Y循环了,Y循环I如果小于等于max。对不对?如果I小于等于max,我们就可以去判断,如果I不再小于100了,那说明这个已经跳出这个范围了,那就不处理了,那他说能够被三整除的那一个判断语句吗?如果如果I磨上这个三等于零说明什么呢?说明呢,它就是能够被三乘除。
02:06
那如果能被三整除呢,我就输出来就行了,好的,那咱就写个啊I等于多少人。能被能被三整除。因为他就是看有哪些数是能够被整数,所以说我们就直接输出就行,那现在这个I是什么,就它处理完了过后,是不是这这一部分。现在老师量的这一部分,其实就有点等价于我们基本语法里面的循环题,只是呢,现在是一个判断条件,循环变量迭代是不是应该做一下,就是爱加加。对,现在是A加加做完了就get try一下,把这个控制台暂停在这里。代码写完了就是一,只要我们I小于等于max,我们就去判断。它是不是能被三乘数,如果是我们输出,如果不是啊,如果不是的话呢,就下一个,直到什么时候呢,直到这个I不再小于等于max,我们就退出,好朋友们运行一下。
03:10
当然这个结果很很显然,上面应该是没有注销。好,我们再来运行。我们再来预习这个结果。跑起来。我们可以看到有这些数能够被三整除,肯定都是对的,看随便验证一个48就能被三整除,到什么地方就结束了呢?往下走到99。对,99能够背上证书,100不能,然后101就已经越界了,好,第一个题咱们就做完了。来看第二个题,第二个题他说打印40~20之间的偶数,那这个太简单了,跟前面几乎完全一样,对不对?你复制一份改,改吧改吧就行了,I呢,从40开始。Max呢,结束到。两两百是不是在40和200之间来判断啊,那现在就是判断是不是等于二。
04:05
如果I摩尔等于零,说明它是一个偶数,是这样子的吧,所以说我们这是偶数。写完了就一。就已经写完了,对不对,因为你现在呢是从40~200之间,所以这个I呢,就把它复制为40,而max呢就复制为200,你看40开始到200之间判断了。这个代码就行,我不运行了哈,很简单,就这么写完了,那么我们再来看第下一个题,下一个题呢,就说不断输入姓名,直到输入一个exit为止,就退出这个Y循环,就说我不停的输这个名字。那么这个名字。如果说的是一个exit,我们就退出这个外循环。那这里面呢,我要稍微的分析一下,这里面有一个点就是要。要接收,需要接收,接收用户的输入。
05:00
输入什么呢?字符串,诶我们在前面是不是讲过怎么去接收字符串。讲过的吧,其实字符串就是字符数组,我们前面讲过一点点哈,还没有,还没有系统的讲,还没有系统的讲,但是呢,应该用过一次。那么还有一点要提醒大家,这里面有一个最大的问题是怎么判断?他是不是输入的exit这里面呢,我要提提示大家一下,就是在我们的string这个文件里面。就是这个里面有一个方法,有一个叫string。试去CP这个方法函数判断什么呢?判断两个字符串是否相同,那那有些同学说我我要是不知道有这个怎么办呢?查文档是不是老我在前面讲课的时候,我们给大家分享过一个标准库文档啊,打开看一下。
06:01
在这里有个资料,是不是这里面有一个C语言。C标准库参考手册,我们打开看,这里边呢,我们。是不是在这里面我给大家分享过,里面有很多的头文件,其中有一个头文件呢,叫string h,这个文件里面定义了各种字符数组的函数。呃,其实就是这么算了,那这里面有哪一个方法需要同学们知道呢?在这里同学们看,这里有一个方法,我带大家看一下,有个叫做这个方法。叫做string compare。他把第一个。这是第一个传输的字符串案,这是第二个次符串,他说把10STRING1所指向的字符串案和10STRING2所指向的字符串进行比较,那么如果相同呢,就会返回一个零,如果不相同呢,就会返回一个非零,我加一句话,咱们这写的有点不对啊,就没有写的很详细,就是零返回零。
07:02
返回一个零表示表示相等。非零,非零,OK,非零表示不相等。好的,那现在呢,有了这样一个基础,我们再来做这个题就比较简单了,对不对,比较简单,来我们写一个吧,首先呢,我定义一个字符数组,比如说十吧,十个的,说实话我一个空串,那么我就提示提示他请输入一个名字,请输入名字。好,它提示完了过后呢,我们就判断我们这样子,我们在直接直接这有个Y循环了,Y循环来这样写哈,大家看能不能看懂是G审批,然后呢,Name和谁比呢?和CE比。如果它不等于零。各位,如果它不等于零,表示什么意思?如果这个不不等于零,说明它输的不是exit,是不是因为我刚不讲了吗?等于零,刚才不是把这句话拿过来了。
08:08
把这一个说明给同学们拿过来。对,把这个拿过来,大家就应该很清晰了,来看。就是零表示相等,如果它不等于零,说明它不相等嘛,不相等就继续玩,如果相等我们就退出了,好,那大家看到这一方提示未识别,是因为没有引这个头头文头文件,那引一下include是点H。好,引完了过,你看这边就不会再报错了,对不对,那就说如果他输的不是exit,我们就说请输入名字,那怎么接收呢,Scan f。拿到这边呢,我们按百分号S接收,接收的就是name这个地方不需要再加地址符了,同学们。为什么不要加地址符呢?因为数组的名称就代表它的地址。注意,这里不需要。
09:02
不需要加爱的。艾特零,因为因为数组的名称就是地址。好,这样子就就明白了,他就不停说,诶,直到他输入一个ET就退出了,那么我们,呃,为了好好玩呢,我们提示他一下,他输的是什么,好吧,我们提示他一下pre,就你输的是什么。你输入的名字是。名字是好,我们给它输出来给大家看一下。好,那这样子,我们就这边来个换行,这边也来个换行,那换行过后呢,我们这边需要来把这个界面停在这写两次,我就不解释了啊,第一个是过滤,就是过滤掉那个回车。回车这个是干什么呢?暂停我们的控制台,暂停控制台,好这个代码就行,完了我们来玩一把运行,诶这个地方。
10:07
哦,他说有一些字符我粘错了,应该是这里面粘了一些它不识别的字符,因为我我是从这个word文档粘过来的,他可能不识别,我先把它展示的。拿掉我先生成一下。好,他说是生成成功了,那可能这里面有些乱码啊,我看一下是不是清一下。你看确确实有一些它不识别的啊,不识别的我把它清这样清理一下。因为有些字符呢,你看不见它是个乱乱乱七八糟的,呃。这个很讨厌哈。很讨厌有些乱七八糟的字符,那这个字符咱们咱们一点点考吧。先把这个拷过来。拷到我们这边来,同学们也要注意,就是有时候呢,你你拿过来过,你发现不好使哈,再生成一下。
11:07
好,这个没问题,那这边我就这就就拿这个函数放这就可以了,好吧,这个什么呢?这个是。呃,我就简单把这句话写到这,就返回零表示什么,被零表示什么就行了。放这儿哈。OK,我们在生成一下,看看有没有特殊的字符。好可以了,那现在我们玩一把运行。那运营起来过呢,他说我输一个名字,我就瞎输一个号,我不输那个it Jack。他说你输的名字是Jack,是不是没有退出?它又提示你,请输入名字,我输一个汤姆。是不是啊,再说一个。Mary,也不是吧,那现在我输一个ex。如果输一个X呢,他认为你输的就是判断就等于零了,等于零,就这个xit输进去就是零等于零,它这两这两个就相等相等返回一个零,零不等于零是什么样。
12:08
哎。就说现在。诶,我我想想啊,这里面是有一个小问题,有个小问题。零表示。相等。您表示?相等。那就说如果我输入一个exci,这个就返回一个零,零不等于零。显然是不成立的。对行,零不等于零是不是零等于零嘛,它写一个零不等于零,零不等于零不成立就就为甲,就为甲就退出来了,明白吧,好,这里大家注意啊,就是有时候乍一看诶,零不等于零,有时候自己还有点绕不过来,零不等于零肯定是不成立的嘛,不成立这个就为甲,为甲就退出,因为我们原先这个示意图已经画的很清楚了,如果你这个判断条件为假,它就会从这个地方直接往下跑。
13:03
OK,那现在我们看一下,我输入一个Excel,一回车就看效果回车了。诶,大家看。这个地方。他没有没有退出来,没有退出来,我们看看是什么原因哈。在这个地方。为什么他这个地方。等一下啊,等一下。哎,退出来了,那为什么为什么还有一次呢?是因为你最后这个地方还输出了,你是不是先进去了一次再回撤的呀,对不对,我们再玩一下。再玩一下,看看是什么问题。保存一下。来看看啊,同学们不着急。我直接上来呢,就输一个这个东西。现在现在第一次他让我们输一个名字进去,我输一个,对你看这样就对,这样就绕过来了哈,我输了一个exit。我输一个过后呢,其实你是在这输的,你你输完输进去过后,你是不是把自己的名字。
14:01
先打了一下,打完了过后。你就说你即使输了一次exci,其实这个名字在这里面,我我们也输出来了,输出来过后呢,我再去走这个Y循环。这个时候ex和就是你输的ex呢,和整个这个地方会返回一个零,零不等于零不成立,为甲就退出来了,所以说即使你输了一个ex赛呢,他也会把这个名字输出来,对,其实这个时候已经退出了。已经退出了,那如果你们不相信的话呢,我在这加句话。或者加一句话就退出了,退出外循环,也就是说前面其实都是正确的。只是我们要明白,他最后还就是你输这个ex access呢,也会把名字给你输出来,看看我这写啊。是不是你输名字,然后退出Y循环,再一回车怎么退出,那如果说你输的不是ex呢?你看你输一个汤姆凯汤姆。
15:00
是不是他一直让你在这说啊,Jack,对不对,你是出不来的,那exit退出来,输入名字,Exit退出结束。代码没有问题,好,同学们,那关于我们的这个Y循环的这道题,我们就评价到这里,那现在呢,我们花一点时间把刚才讲的外循环做一个简单的梳理来,同学们跟着老师思路,那刚才我们讲的外循环是哪些内容呢?捋一捋。往下看。好的,我们从这里开始梳理外循环。因因为我们前面学完这个for循环,再学while呢,就相对容易了,因为你有点基础了嘛,所以说我现在讲的是while循环。那外外循环,我们首先。给大家说了一下它的基本语法和执行流程,基本语法这个好的,然后它是执行流程,呃,它的执行流程分析,执行流程分析呢,我们分成三个步骤来讲的,首先呢,我们呃有一个流程图,我们还写了一段well well循环的这个这个题的一个答案流程图给它粘粘过来。
16:07
流程图在哪里呢?流程图我们看看在哪里哈,是不是已经关闭了,重新打开一下也可以这。我们把这个流程图给大家拿过来。放到我们的笔记中去,便于同学们以后的复习。挺简单的。放这儿。这是我们的流程图,搁这儿了。那这段用while循环完成的,While循环来完成输出,你好,上硅谷的代码在哪里呢?在这是不是这我直接也给同学们拿过来。是这段代码。放到我们的笔记中去。好。那么这里面的有一个代码执行的内存分析呢,同学们自己去分析一遍一遍就可以了,按照老师讲的这个流程。就是这边拿一个计算机内存,这边看一个界面,自己去玩一把,好吧,并不难自己去完成。
17:00
没什么难度啊,没什么,这个你要说做不出来的话,其实呃,不太可能,这个没什么难度嘛,没什么难度,应该是OK的,每个同学都OK,然后讲完Y循环过后呢,我给同学们说了一下Y循环的注意事项,对不对,Y循环的注意事项好的,那现在呢,我们在这里给他来一标号。那Y循环的注意事项和细节说完了以后,是不是我们又带同学们做了三个关于Y循环的练习题啊?是不是三个关于外循环练习题。那是这三道题呢,呃,难度也也不大,我把这个答案直接写到这代码演示,但是我提醒大家啊,虽然难度不大,同学们要去写一写,因为咱们作为初学者,有很多东西你要你要通过这个练习你才会有感觉的。那我把刚才这几个题的答案给他放过来就行了,在哪里呢,就是。是不是这有三个题,三个题好,我把这三个题的注释注释都把它打开。
18:06
好,然后呢,我一个个的放,这是我们的第一个题。对,这是我们的第一个题,没问题吧,同学们,第一个题的答案先搁这儿。来,放到这里面来,VO的主函数跟进去。第一个第二个题就是打印40~200之间所有的偶数,也非常简单,给同学们也放到这个表格中。贸易的主函数。放进去。紧接着呢,我们又讲了什么呢?诶,我们讲了一个不断输入一个名字,直到用户输入的是ex,我们再退出,那这段代码呢,是在这。这里面有一有有些知识点要需要补充的就是我们会用到string h这个头文件里面的一个叫string compare的函数。那么返回零表示相等,非零表示不相等,这点大家注意一下。
19:02
然后我在这边加入一个表格,把代码放进去。转述。好的同学们,那我们这这个地方我就去掉了,那关于我们while循环的基本语法和一个基本练习题,就说到这,这些都讲的比较简单的哈,后面我们还会有综合练习。会加深对各种循环控制的理解,那关于这一项Y循环,我们就给同学们聊到这里。
我来说两句