搜索
写经验 领红包

beak与cotiue关键字的用法、区别(cotiue关键字的作用)

导语:break与continue关键字

1.概述

不知道大家有没有这样一种感受哈,有的时候容易混淆break语句和continue语句的用法,总是模棱两可,不敢确定自己是否使用正确了。正好,我们本篇的重点就是break和continue关键字的用法。

2.使用场景

Java中为啥会诞生break和continue关键字呢?其主要目的是用来中断流程控制语句,例如switch语句、for循环。

3.break关键字3.1 用于switch语句

上面提到了switch语句,那么我们先来看看switch语句的用法。

 String season = &34;; switch (season) { case &34;:     System.out.println(&34;);     break; case &34;:     System.out.println(&34;);     break; case &34;:     System.out.println(&34;);     break; case &34;:     System.out.println(&34;);     break; default:     System.out.println(&34;);     break; }

switch语句将从与选项值相匹配的case标签处开始执行,直到遇到break语句,或者执行到switch语句的结束处为止。如果没有匹配的case标签,则会执行default语句。

可以看到,break语句在switch语句起到了中断流程的作用,试想一下,如果在case语句中没有break语句,那么就会接着执行下一个case语句,就会引发程序结果的错误。

switch语句执行流程

好的,我们再来回顾一下,case标签支持的类型:char、byte、short、int、String。

3.2 用于循环体

1)结束当前层循环

代码示例:

 List<String> seasons = List.of(&34;, &34;, &34;, &34;); for (String season : seasons) {     if (&34;.equals(season)) {         System.out.println(&34;);         break;     }     System.out.println(&34;); } // 执行结果:春天花会开,鸟儿自由自在!

以上代码的执行结果中并不会执行循环体的最后一句代码,因为当if条件成立时,就会结束当前层的循环。请注意,这里特别强调是当前层(表示break所处的这个循环体),为什么会有当前层这个说法呢?很多时候,我们在处理数据的时候,会用到嵌套循环。好的,我们来看个嵌套循环的案例:

 List<String> cities = List.of(&34;, &34;); List<String> seasons = List.of(&34;, &34;, &34;, &34;); for (String city : cities) {     if (&34;.equals(city)) {         for (String season : seasons) {             if (&34;.equals(season)) {                 System.out.println(season + &34;);                 break;             }         }         System.out.println(city + &34;);     }     if (&34;.equals(city)) {         System.out.println(city + &34;);     } } // 执行结果为: // Summer:接天莲叶无穷碧,映日荷花别样红 // 成都:蜀道难,难于上青天 // 昆明,又名春城,这里四季如春

从以上代码的执行结果可以看出,break语句只是结束了它所在的循环体,并不会影响外层循环体的执行。那么有没有办法可以结束整个循环体的执行呢?解决方法肯定是有的。

2)结束整个循环

 flag: for (String city : cities) {     if (&34;.equals(city)) {         for (String season : seasons) {             if (&34;.equals(season)) {                 System.out.println(season + &34;);                 break flag;             }         }         System.out.println(city + &34;);     }     if (&34;.equals(city)) {         System.out.println(city + &34;);     } } // 执行结果:Summer:接天莲叶无穷碧,映日荷花别样红

结束整个循环,需要配合标签来完成,在循环体前定义一个标签,格式为lable:,就可以配合break关键字来完成结束整体循环。

3.3 小结

break语句用法:

1)用在switch语句中,结束case标签语句的执行。

2)用在循环体内,表示结束当前循环。

3)配合lable:标签语法,结束定义在标签之后的循环体,可用于嵌套循环时,结束整个循环。

4.continue关键字

与break语句一样,也可以用来中断流程控制语句,break语句是结束当前循环体的执行,而continue语句是结束当前循环体中本次循环的执行,continue语句之后的剩余部分的代码不会被执行,而是直接进行下次循环。

示例代码:

 List<String> seasons = List.of(&34;, &34;, &34;, &34;); for (String season : seasons) {     if (&34;.equals(season)) {         System.out.println(season + &34;);         continue;     }     System.out.println(season + &34;); } // 执行结果: // Spring:岁月静好 // Summer:接天莲叶无穷碧,映日荷花别样红 // Autumn:岁月静好 // Winter:岁月静好

根据执行结果可以看出,continue语句之后的代码没有被执行,起到了跳过本次循环体的作用。

本文内容由小梓整理编辑!