00:00
各位,我们再来看一下break的注意事项和细节说明,那前面我们介绍介绍了它的基本用法和流程图,那么在break语句里面有。要注意哪些问题呢?我们来说了两点,大家要有印象。第一个break语句出现在多层嵌套语句块时,可以通过标签指明要终止到哪一层语句块。什么意思呢?大家看我下面的这段代码。也就是说我们这个break。呃,也有可能是放在嵌套的for循环里面的,或者是嵌套的Switch里面的,对不对,你比如说这段代码。你看这段代码里面有两个for循环,这就是嵌套for循环,那么在这里面有一个break语句,它会怎么执行呢?它可以指定一个标签。也就是说你看这里。这有一层,两层,三层,看到没有,这里面有个break,如果我这地方没有,后面没有,当然这个地方也不会有分号了,假设这个地方我没有写标签。
01:07
没有写后面这个标签,那么就意味着它只跳出第一层,就是把这一层跳出去,他就到哪呢?到这个第一层的外面去执行,如果我在这地方写了一个label,那就跳到哪一层去,比如说我写的LABEL2,这是个标签,在勾浪里面可以写标签。那么标签跳到哪去了呢?各位同学相当于说他一旦遇到这个break就直接跳出。这一层那个LABEL2是指的这一层,那相当于说代码就直接从这到哪去了呢。到这儿去了。那如果你写的是LABEL3,那LABEL1LABEL1你看从这写的LABEL1是指的这一层和这一层,那如果是LABEL1啊,那相当于从这个地方直接就。跳出整个这这三层就跳出去了。能理解吗?那这样子我讲了过,大家可能还是不明白,不明白的话很简单,我举一个例子,然后呢,我把这个图给他分析一篇,大家马上就能清楚,好,我把注意事项和使用细节给大家整理一下。
02:11
然后呢,我们举例说明。这边还是有一点小小的细节需要同学们注意,Break的注意事项,注意事项和使用细节。那这里呢,我们也给大家整理一下刚才老师思路啊,刚才老师呢,整理了有两点,第一点是这个对不对。Break呢,它是可以指定跳出到第几层的。跳出第几层的,很多编程语言都支持这种写法,包括Java啊说如果break语句出现在多层签到语里面,可以通过标签。可以通过标签指明要终止到哪一层。可以通过标签来指明你要终止到哪一层,这是第一个,第二个呢,我们看。
03:00
看一个案例看这个,看一个案例,看一个案例,直接上案例了啊,我也不写那么多了,直接看这案例,这个案例呢,我这已经准备好了,看这个图,我就按这个案例来来说话,给他分析来吧,同学们,我们写一下写段代码。好的,我们写段代码来说明一下。这里这里演示一下什么呢?Break。就说指定。指定标签标签的形式。形式来使用break,那现在呢,我写成代码,同学们看。For循环,我就按照这个幻灯片给出的这种模式来写吧,它是I04,好,我写一下。I。零。的I小于四。对不对,I加加。然后这里面有个for循环。结。
04:00
J等于零。好,J等于零,J小于十。对不对?解,小于十节加加。然后在这里面呢,我有一个判断,如果如果勾就是节,它等于二,怎么样,我就break,但这个意思咱们不用。扩起来,这就break了。Break过后呢,我在最下面,我输出了一句话,我输出了什么东西看一下。我输出了一个。J等于多少?那看解等于多少,我们来把这个代码分析一遍,跟上老师的思路,我们一起来分析。这个地方我就不画图了啊,跟上老师思路来分析,首先呢,假设这是我们的一块内存。这是我们的内存。好,这个地方假设是我们的控制台,我就画一画好不好?首先呢,I等于零,注意听。I现在是等于零的,没问题吧,I等于零,好,I等于零,I小于四成立,然后呢,解等于零,好。
05:07
解等于零也没问题,好可以了,那解小于十是成立的,然后呢,解等于二吗?不等于二,解不等于二就等于零嘛,然后就输出这句话,那这时候结此时此刻输出了一个零没有问题吧,然后这个执行完了过后该执行什么话了,是不是又该执行节加加结加加完了过后这个零就变一了,能理解吗?一变一变一,一还是小于十又进去,但是结不等于二,所以说这地方继续输出,结等于一又输出来了,这个执行完毕过后又进行结加加,是这个地方吧,结加加,这个一变成二了,二小于十成立,好,很不幸,结等于二了。那这个节等于二的时候就执行break,最新这个break默认是跳出最离它最近的for循环,也就是跳出。就近原则,就是跳出离他最近的这个for循环,那就是相当于跳出整个这个for循环,那这里面这个for循环,也就是说跳出来跳到跳出这个for循环了。
06:10
那么跳出来过后会怎么办呢?朋友们,他有自信。爱家佳。是不是I加加了,I加加这个次方就变成了解变成了一。变成一过后一小于四是成立的,然后结又执行,这句话又变成了零。解变成零以后,解变成零以后,解小于十成立,然后又输出好,这个时候它又输出解等于几呢?是不是又等于零了呀。是不是解等于零,然后又解等于一。以此类推,好,这样子就不停的这样走,走走走到什么时候就退出呢,大家看。等到这个JI等到等到这个I等于四的时候,就不再输,那也就是说它一共会输出几次,这个啊,是不是J等于零,输出四次就可以了。
07:02
也就是他这么会输出解等于零,J等于一,解等于零,解等于一四次。是不是这个意思啊,就是说这个地方有有四个这样的值,010101,那就这个结,结果是01010101,最后整个负循环推出去,能理解吗?好,我们来看看是不是这个结果,我们来执行一下。根据刚才老师分析的,我们说这样会输出010101014对跑一个。如果我们分析正确了,说明它是OK的。跑起来是。大家看一下,根据老师刚才的分析呢,应该是正确的看。一对。两段三段四段完全OK,完全OK,说明刚才老师的分析是没有问题的对不对?这样就说明break语句在默认情况下我写到这啊。那么待待会我们把结论再写写一下,默认情况下,Break break,默认会跳出,会或者是会终止,会跳出的都可以跳出最近最近的最近的负循环。
08:11
会循环,但是呢,刚才老师也说过了,这个其实没有什么特别难的,关键是有些时候我们会定个标签,比如说我写个那个标签叫label,这个标签的名字可以随意。LA1,当然我也可以写其他,比如说我就要叫T1也行,但一般我写LABEL1,注意啊,这个是标签的名字,随意写,那么标签写的时候呢,注意这边要写个冒号。最后要写个冒号啊。注意这个地方是。设置了一个标签,设置一个标签名字是随意的,Label也可以叫label e可以叫叫别的名字,比如说ABCE也可以,好不好,这个名字是自己写的,然后呢,我在外层也设了一个LABEL1。LABOR2LABEL LA。LE2,冒号。
09:01
这地方又设置一个标签,那大家想一想,我如果这样写,你们觉得结果又是什么样子的?Break。Break label1。哎,各位同学,你这样写实际上跟上面是一个意思,因为这个LABEL1本身就是离他最近的for循环,如果我在这种情况下来执行,你们会看到仍然输出相同的结果。诶,大家看这边有个问题,他说LABEL2没有用到,因为我们知道构员有一个有一个非常严谨的规则,就是没有用到的东西,他是不让你写的,那干脆我们先暂时的注销它好不好,先注销它来走一个再跑一次。我们可以看到仍然输出01010101对吧,跟我们分析一样,那假设假设现在我再换一次。我这次呢。让他直接跳出LABEL02。Brick。LABEL2。各位同学分析一下,来找一个同学想一想,如果我写了内二,请问这个时候输出什么东西?
10:08
请问这个时候输什么东西?跟着老师思路来分析一下。跟上老师东西,那这个时候你想其实很简单,就相当于说你在这个地方输出了一个零一过后直接就蹦出去了,说说这个结果都不用分析,你想想输出什么呢?其实就输出了一个零,解等于零,解等于一就退出去了,为什么呢?因为我们第一次解等于二,解等于二的时候,它直接到这儿就直接蹦到这儿去了,整个外层负循环都结束了,就不会再进来了。所以说这个地方不用怀疑,肯定速度是J等于零,然后J等于一就退了,注意啊,这个地方应该是换行,但是我这没没有办法换行了,就是意思意思来跑一个。我们看看分析对不对,抛弃了。我们可以看到,的确只输出了一次,零一就没有了。
11:02
对吧,说明我们这个break的标签配合标签使用,就是这个意思,好的同学们,我根据这个案例呢,就把我们的这个什么呀,就是label。跟多层嵌套标签使用的。情况给大家分析完毕了,我把案例给大家放过来,大家再好好的想一想好不好,再好好想一想,针对这个案例呢,我做一点说明。针对这个案例,我做一点说明。注意听。对案例的说明。我总结几点比较重要的话。对。上面上面案例的说明和整理。那我这个时候呢,用一个小的这样的标签。嗨,不知道是什么玩意儿,这个是啊,来。针对这个案例,我们写成三吧。慎。好整理一下啊。
12:00
那就干脆。怎么说呢,这样写第一点。好,第一点,第一点就是第一点就是什么呀,就是首先呢label break,默认会跳出跳,跳出最近的负循环,这是第一句话。Break,默认会跳出。跳出。跳出最近的for循环,如果你是Switch的话,也是一个道理,假设你是Switch签到使用使用这个break也是一个道理啊,最近的for循环。好,这是第一个,同学们要了解的,这是第一点,哎哟,这个还不行。用这个就太太难看了。用一吧,好吧,用这个小标签,这第一个需要同学们注意,第二个呢,第二个点。
13:00
第二点,第二点就是什么呢?Break可以配合标签使用,可以指定直接跳出到哪一个for循环。Break,可以后面。Break,后面。正在备份break后面,后面可以指定。可以指定标签。标签,那么可以指定标签,指明确指定标签,指定到跳出,跳出什么呢?跳出指定的标就是后面可以指定标签,跳出跳到跳到标签。跳出。标签。标签,这个标签。呃,对应的对应的那个for循环。你比如说在这里,我这写一个break label2,那就相当于说break就跳出了这个LABEL2对应的for循环。
14:00
那就是说整个就跳出去了,看清楚没有好,就说break可以指定标签,跳出标签对应的for循环,就这两点,大家有一个认识好不好,有个认识好,那关于break的注意事项和使用细节呢,我重点就是给大家谈一下。这个问题就说以后同学们看到别人在break后面写个标签的时候,大家不要觉得大惊小怪,他确实可以这么去用。OK。那就是,这就是break和标签配合使用的案例,我们就说到这里。
我来说两句