00:01
为了加深对break语句的理解呢,我们来做几个课堂练习题,先看第一个题,第一个题呢,分析下面的代码输出什么内容,我们来看一下,首先它定义了两个变量I和节,没问题,解等于零,节等于零呢,进行这个循环for循环,这里面大家看到是一个嵌套循环,看懂了没有?是不是以前讲过这个for循环,那这个for循环呢?同学们看,呃,我们看,如果I等于二的时候就break,那么我们分析一下。第一,我假设这是这是我们的一个内存。假设这是内存,假设这边是我们的输出哈,这边是我们假设这块是我们的一个输出界面,我们来一起分析分析,首先解等于零。绝等于零。接等于进进来过后呢,I等于零。对不对,I等于零,I等于零过后I等于二吗?I不等于二,所以说不进去不执行这个break语句输出,那这个时候呢,I就应该等于解等于零输出来了吧,输出来以后,这这个输出来以后内存循环还没结束,就应该是行什么呀,I加加。
01:10
能看懂不?那爱加加这边。I。I加加,那这个地方就变成了一。变成一以后呢,一小于十成立。一等于二不成立,于是又在输出什么呀?输出了一个I。又在输出I等于几呢?I等于一,I等于完了,I等于完了过后再I加加,这个一变成二了。二二仍然是小于这个十的又成立,那这个时候呢,I等于二。成立就break了。对,这就那这个break到哪里去了呢。同学们要分析啊,这个地方break break go呢,它其实是终止了当前这个for循环。也就是说你这个break语句呢,只去终止了当前内存的这个for循环。
02:02
那内存for循环结束以后,它是不是执行结加加。结加加,结加加,这个变成一了,能理解,不变成一,变成一呢一。一小于四成立,又进去,进到这里面是不是I等于零,又像刚才那样重新来一遍。是不是又重新来一遍,所以说他又又接着输出I等于零。J等于一。啊,就就I等于零和I等于零和I等于一,又输出这么一次。输出完了过后,是不是又结加加,是不是又结加加,因为你你这个地方截I在第二次进去的时候,这个I等于二的时候,它又它又退出,当前这个for循环不往下面走了,但是内外层循环还没有结束,所以说它又进到这边,把这个结呢,又变成了加,变成了二。再输出一次,也也说在这个基础中再输出I等于零,I等于一,是不是输出完了过后又进去把这个地方换成三。
03:03
三小于四还是成立的,再输出I等于零。I等于一是不是?输出完了过后再进去,结变成四,这个时候注意四不再小于四。因为四不小于四,所以说这个就为甲了,于是就退出整个这个外层循环,因此这段代码输出的内容应该是什么呢?应该是I等于零,一,这是四次这样的结果,也是最后输出结果,我刚说到这里,应该是I等于零,I等于一。I等于一,然后呢,I等于零,I等于一,然后再是I,呃,这这个我就这下写不下了啊,写不下了,我我放小一点吧。放小一点,大家知道是什么意思就可以了,十那这样子再把这个再来一圈。复制一下就可以了。
04:00
也就是他应该输出I等于010101,是不是这样子的呢?我们可以运行一下,给大家验证一下,因为我们说完了过后不验证,大家心里面总是担心的,对不对,好我呢再给他写一个小案例。To Go abreak。Breaker第一个练习。好跟上我的思路,好跟上我的思路。那现在呢?我们把刚才这段代码拿过来给同学们运行一下就可以了,Include。Include。诶,为什么这个地方没变色啊走。啊,这个后缀被被我拿掉了,这个不行。多多删了一个C。Include。哎呀,完了完了完了。啊,这个异常中断了。还得重新打开一次。好,重新打开这个没事儿。刚才呢,因为。啊,不恢复了,这个就不要了。
05:01
Breaker。好,恢复吧,恢复。好,恢复完了过后,我们再把刚才的这一个打开,是哪一个break的一个DEMO break的一个练习,好像那个文件没有保存起来。对吧,那重新再建一下。因为刚才异常退出了。好,我们新建新建一个文件啊,新建一个文件哈,走一个在这。找brick。Exer c01。好,这次呢,我们慢一点。把这个放过来。诶,怎么他说有一个了呢。放哪儿去了?好,那,那就换个名吧,不知道他是在哪个地方放着的。好,走一个哈,我们再来一个。
06:00
Include。STDL。STDIO,然后呢,咱们写一个主函数对吧,然后把这个代码咱们放过去就可以了。那么我们来运行一下,看看这个效果跟我们想的是否一样就可以了,先把这些注销一下。对,你不注销,待会儿他会告诉你有重复定义,保存一下生成解决方案。生成解决方案,还有代码有没有问题哈。好,已经全部生成成功,我们运行一下,那应该输出。A01010101正确,好,这跟我们分析的完全一样,紧接着呢,我们继续来看下一个练习,下面练习呢,还有两道我们分别来完成哈,那我就开始写第一道题。一道一道的做。那我们呢,就都写到这儿吧。都写到这一个位置好不好,也不是难也也不难。我把这个写到这,这道题呢是100以内的数,求和。
07:02
啊,这个很简单,然后呢,求出单和第一次大于20的当前数是多少,那这个就我就直接写代码了,直接咱们用负循环就可以了,好的,先定一个I等于一嘛,当然求一个和上数字化等于零,这个我就不分析了,因为特简单一。然后呢,I小于等于100。哀家家。I加加走起来走起来,那么上来过后呢,我先累积一下。对不对,等一下,如果看这里条件来了,如果上大于20,大于20我就干什么呢?我就要退出,因为他他说第一次大于20的时候,当前数据拿到就可以了吗?Break。Break,在退出之前呢,我们打印出这句话,打印出当前这个数是多少,就可以写一下,当第一次和大于20的时候,当前数等于,输出就是这个I。
08:02
是不是代码就写完了,非常的简单,所以说我们可以在哪里呢?可以在他需要的时候提前退出。因为他说的D是大于20,当前数拿到就可以了,现在呢,我们来运行一下。看看第一,呃,第一次大于20的时候,当前数是多少?是六,你们可以算一下,一加二加三加四加五。加到六的时候,其实就已经超过20了,所以说这个当前数呢就是六,代码写完,我们紧接着再来做一道题。这道题呢,比较好玩哈,这道题比较好玩,来,我们一起做一做。把这个先注销一下好不好。这道题我们先来看他的一个具体需求,他说啊,实现一个登录验证,有三次输入机会。如果用户名是张无忌,密码为888,提示登录成功,否则提示还有几次机会,请用for循环完成啊这个太简单了,咱们。
09:00
咱们就开始写吧,就特别简单。那我就,嗯不这样,还是简单分析一下吧,分析第一个,我们首先首先要有一个变量,定义一个变量。变量干什么呢,保存。这个登录的次数登录。登录的这个机会还剩多少次机会?按这个次数来记,所以说你登录一次呢,我们就把这个机会减少一次,比如说叫chance chance。这是NC,第二个呢,是不是我们要定义两个变量来接收它的名字和它的密码,对不对?我们要定义两个字符数组。字符数组。对不对,来干什么呢?接收,接收用户名就是他的名字啊,用户名和密码没问题吧,第三一个,第三一个,我们一共有三次机会,说说我们使用什么呢?使用。
10:06
使用for循环。For循环。或循环。加break语句。为什么不循环加break语句呢?因为它有可能没有用到三次就提前登录成功了,对不对,所以说这边如果说如果登录成功,登录成功就提前提前退出。好,代码就分析完毕了,那同学们,老师开始跟老师玩一把。呃,首先呢,我们先定一个芡实。这是登录的次数。我们初始化为三。没问题吧,现在呢,我们来定义name。我们假设名字最长四个字符。这套名字,再来一个密码。Pass也最长十个。好,写完,现在呢,我们用for循环来玩一把,I初始化I,这个是循环变量。
11:01
这个是我们的循环变量。好,负循环开始了,I初始化为一,I小于等于乘式。对吧,哎,家家。爱加加,下面我们接着往下看。那就是说,嗯,在正常情况下呢,我们可以有三次机会,但有可能提前退出。那首先我们提示他一句话,请输入用户名。对,请输入。对吧,请输入名字,输入名字我们怎么搜一下呢?非常的简单,试看。F搜一下这个名字百分号S名字呢,就那注意如果是字符串前面不需要加I的符号,再说一遍啊字符串。字符数组。不用。不用加那个艾是不是已经讲过这个事了,拿到这个名字是不是还要输输入我们的密码呀,把密码也收一下。
12:01
输入密码。密码呢,我们用PWD来接收,拿到以后是不是要进行判断。判断两个字符串相等,是不是前面用过,判断字符串相等。使用。使用什么呀?使俊审批这个头文件是不是要引下了?对,要影像头文件是哪个头文件还有印象吗?前面讲过俊H。是不是同学们,那现在呢,我们就可以开始比较了。如果。如果什么呢?使GCP。就是你输,输的是张无忌。啊是哪一个呢?就名字是商无忌,它如果等于零。就是相等的并且,并且什么呢?密码是三个八。三个八。三个八这边我们是用密码比较,如果这两个条件都成立,说明什么,说明说明OK啊,那就提示一句话就行了,说明什么呢?登录成功。
13:06
登录OK了。登录成功,我就我就退出这个for循环了,为什么呢?你你已经登录成功了,你还你还在反复的登录干啥呀,对不对,我就break,看到没有这个地方就体现出for加break的特点。要提前终止。否则怎么办呢?如果你输的,哎,这个我忘写了,一句话,等于零。好,等于零。如果说同学们看哦。如如果说哈,如果说你这个地方没有对说明,那是不是就结束呢?不是还有可能有机会,所以说我。第二是呢,我怎么办呢?哎,这个时候我们就把这个机会。机会次数减去一个一。减一。减减减少。减少,那减少的话,现在大家看那就是chin。
14:00
Chance。减减。对不对,其实他还有多少次机会呢,来说你还有这么多次登录机会。哦,你还有这么多次登录机会。登录机会,那么把这个嵌输出就可以了。明白这个意思吧,最后呢,为了能够看到这个效果,我们来两个get char,为什么是两个get char,前面已经讲过很多遍了,这里不再多说。大家发现我的代码有问题没有,哼,其实我的代码是错的,哪哪有错的,你看你这个嵌在减减。那你这个地方是不是会有影响,因为你的次数其实是三次嘛,所以说你这减了过后它就变变了,有这样的话。你这个也在变,这个也在变,那就麻烦了,怎么办呢?所以说我们这个芡实呢,所以这样子我们下写个登录次数。这个不能变的一个登录次数。
15:00
这样子更好,否则的话,待会你这个变了麻烦了对不对,如果你这也写着芡实,你这边减少会影响到循环的次数,所以说这个地方是不能变的,同学们。这个地方一旦变了过后,你可能根本就没有循环到三次就直接退出了。你说给人家三次机会,其实没有给到,所以这个地方不能变,因此呢,我们用另外一个变量来写到这点,OK,好,同学们,现在呢,我们来玩一把,或者这样写也行,老师两个都写实太麻烦了,这样写也行。因为我把这个嵌给到他,给到他这个地方,我不变就OK,因为这个是什么拷贝啊,我们前讲过叫直拷贝,它叫直传递。你传递把这个山给到这个log in过后,你这个嵌实的变化不会影到,不会影响log log log count吗?好,这个代码就写完了,来同学们,我们来运行和试用一下。玩儿一把吧。玩一把,诶现在的代码有问题。
16:02
有问题。哪有问题?看一下代码的问题在什么地方。哦,这个地方没有关闭,对,没有关闭,那肯定是跑不起来的了。运行。运行过后呢,我们先输一个名字哈,我们先输一个不成功的汤姆密码,我随便输一个。他说,你还有两次机会。还有两次机会,还有两次机会的话,他应该让我提示,让我再输入名字,但是没有提示说明我这个我们这个代码呢,写的不太好,要改一下应该把什么呀。还有两次机会。还有两次机会,这个地方我们应该是写到外面来才行,如果你写到里面的话,你还写两次回车太麻烦了,对不对,所以把这两个盖串呢,写到外面来,再来运行吧。刚才把那个get下写到负循环里面不合适。血糖膜。密码。
17:00
100。好,他说你还有两次机会再说一个名词,Jack。密码999。OK,还有一次机会。TT。密码。哦,还有临时机会没有了,也就这个时候你已经再回车,他就不让输名字了,直接退出了。对,好,现在呢,我们来整一个可以登录成功的,好,这个地方我们。都来换行吧。提示一个换行。这样没有换行的话呢,我们打印出来特别的难看。好,这样一个换行就好看了,那同学们我们再来玩玩一把,这次呢,我争取在第二次登录成功。好,第一次我们输一个Jack。密码,咱们来一个111。他说你还有两次登录机会哈,现在我直接输成功的张无忌。罪名是张无忌了,回车888。这样就直接登录成功了,回车。登录成功,OK了,好,代码就写完了。
18:02
那大家看看这段代码从逻辑上能不能接受哈,说现在呢,我们在for循环里面又做了一个嵌套,是不是?所以我们现在学的东西呢,越来越综合了。好,同学们,那关于这一个跳转控制语句啊,跳转控制语句break语句就给大家讲到这,我们梳理一下讲解的内容。那么我们怎么讲讲解这个跳转控制语句的呢?我们梳理一把。捋一捋这个思路。好,我们先给大家介绍了一下break语句的一个需求。比如说我们需要知道。什么时候生成一个随机数?然后呢,就提前终止,我们就可以用到breaking去这么一个提示。这这道题我没有去讲,同学们自己去玩一下好不好,就是你调这个RA呢,它会返回一个随机数,你们自己用for循环完成就可以了,并不难。
19:01
并不难,好吧,这个同学留给这道题,留给同学们去做。然后呢,我们又紧接着讲了什么呢?讲了我们break语句的基本介绍,基本语法和快速入门,以及它的一个流程图,说一下就到这。我们首先做了基本介绍。讲了它的基本语法,然后呢,用以以外为例,画了一个break的示意图,再做了一个快速入门,我们把这里的内容梳理一下,这个流程图先拿过来。这是我们针对while语句配合break的一个流程图。大家看一下。放这哈。然后呢,我们又在这个基础上讲了一个快速入门案例,对吧,这个快速入门案例就这讲的。对,那这个题答案我放到哪去了呀。好,这个地方我就拿过来吧。放这就行了。最后这个结论是什么呀?同学们输出什么呀?
20:01
写到这里来输出。输出就应该I等于。I等于几?I等于零,I等于零,还有个I等于一,是不是也输出了?I等于二是不是也输出来了,I等于二,但是I等于三就没有输出了,因为I等于三的时候,它就直接break掉。这是快速入门,完了过后是不是我们讲了几个课堂练习题呀,诶把这个题呢,给大家拿过来,课堂练习题。第一个题。第一个题。第一个题呢,是分析下面代码输出什么内容,这里面我们做了分析的。拿过来。放到这边就可以了。这是我们的第一个题。紧接着我们是不是又讲第二个题了呀?第二个和第三个题放这这两个题呢,也给大家做了一个一个解答。好,在这里也来一个标号。也来一个标号,然后呢,这两道题的答案给大家梳理到笔记中去。
21:03
第一个题的答案是在这里。第一个的答案在这,我们把这里面的注释先打开一下。诶,这个题啊,这这这是我们这道题的一个解答。放这儿。100以内。对不对,100以内的一个。统计那VO。主函数。把代码放进去,这是这个题的解答,这个题网络功能又做了一个简单的登录验证这么一段,呃,这么一个代码放这来。这段代码的一个解答放这儿。梳理到一个表格中。同样,我们写一个VO。主函数。那同学们关于这一个break语句跳转控制语句break就给大家讲到这,那同学们一定要把这道题做一下哈,这道题去做做很简单的,把这个头文件引进去,然后呢,用一个RA的函数会返回一个值,把它接收一下,判断是不是等于97,如果等于97呢,就可以提前的退出。
22:10
就可以提前退出,对,那这个循环你可以写成一个什么循环呢?写成一个死循环吗?比如说你这样写的,我我给他简单试一下,Well。然后写个一。对,然后在这里面玩。当。如果哈,如果,如果某个值,比如说你得到一个值等于97了。那干什么呢?有break。然后呢,用一个变量来统计一共用了多少次就完事了,并不难。同学们,关于跳转控制语句break就给大家讲解到这里。
我来说两句