Java常见跳出循环的4种方式总结、switch中的break与return、lamada表达式中foreach如何正确选择退出方式

Java常见跳出循环的4种方式总结、switch中的break与return、lamada表达式中foreach如何正确选择退出方式

标题

跳出循环中break、continue、return 、循环标记方式含义lamada表达式中foreach使用returnlamada表达式中foreach如何退出循环break在switch中的应用switch 中 break和return的区别Java中switch和if语句的区别

java中的循环死循环

循环也由四部分组成循环之间的区别:

跳出循环中break、continue、return 、循环标记方式含义

continue:中止本次循环,继续下次循环。continue以后的循环体中的语句不会继续执行,下次循环继续执行,循环体外面的会执行

break:直接结束一个循环,跳出循环体。break以后的循环体中的语句不会继续执行,循环体外面的会执行

return:return的功能是结束一个方法。 一旦在循环体内执行return,将会结束该方法,循环自然也随之结

循环标记场景:多层循环,如果在里层循环,达到某个条件后,结束指定循环

continue: continue语句和break语句差不多。不同的是,它不是退出一个循环,而是跳出当前循环,进行下一轮循环。(不往下执行循环内的语句,直接返回最内层的循环开头,并继续执行循环。)

List c = Arrays.asList("1", "2", "3", "4", "5");

for (int i = 0; i < 2; i++) {

for (String s : c) {

if (s.equals("3")) {

continue;

}

System.out.print(s + " ");

}

}

//输出 1 2 4 5 1 2 4 5

break: break语句只有在循环语句和switch语句中使用才是合法的,经常用来跳出循环,不会执行后续循环,但是会继续执行循环之后的。(跳出所在的循环体, 并且可以执行循环外的程序。)

List c = Arrays.asList("1", "2", "3", "4", "5");

for (; ; ) {

for (String s : c) {

System.out.print(s + " ");

if (s.equals("3")) {

break;

}

}

System.out.println("跳出内循环");

break;//跳出当前死循环

}

//输出 1 2 3 跳出内循环

return: (在循环体内执行return,将会结束该方法,循环直接结束。)

List c = Arrays.asList("1", "2", "3", "4", "5");

for (; ; ) {

for (String s : c) {

System.out.print(s + " ");

if (s.equals("3")) {

return;

//这里return后下面都是废物代码,不会运行的

}

}

System.out.println("上面满足条件,return出当前方法了,这里代码是不会执行到的,");

return;

// System.out.println("不合法,return; 后不能在写代码");

}

//输出 1 2 3

循环标记:搭配break/continue (使用场景:多层循环,如果在里层循环,达到某个条件后,结束指定循环。)

(1)带标签的continue不往下执行语句,直接返回标签所在处的循环开头,并继续执行该循环.

(2)带标签的break不往下执行语句,直接中断并退出标签所在处的循环.

continue + 标记(声明)

outFlag1:

while (true) {

System.out.println("循环体1");

outFlag2:

while (true) {

System.out.println("循环体2");

continue outFlag1;

}

}

//通过 debug 先执行 循环体1 到 循环体2 跳到 outFlag1的位置 再次来到 循环体1 依次类推

//注意这个是死循环 如果能结束它是可以运行结束循环后的代码的

break+ 标记(声明) 这里break outFlag1; 跳到最外层循环的位置,表示这个循环块的代码已运行完毕,就会接着执行循环体后的代码。 那么这里如果 break outFlag2; 陷入了循环体1的死循环中, 它就会依次 输出 循环体1 、 循环体2

outFlag1:

while (true) {

System.out.println("循环体1");

outFlag2:

while (true) {

System.out.println("循环体2");

break outFlag1;

}

}

System.out.println("break之后执行此次代码");

//通过 debug 先执行 循环体1 到 循环体2 跳到 outFlag1的位置 结束此次循环 来到 break之后执行此次代码

lamada表达式中foreach使用return

今天在用foreach循环的时候有一个逻辑判断需要跳出循环,但是lambda表达式不能用break也不能用continue,只有return可以用,但是用了之后发现,lambda表达式foreach的return和普通foreach循环的continue效果是一样的

//lamada表达式中foreach使用return, break会报错

List c = Arrays.asList("6666", "7777", "8888", "9999");

c.stream().forEach(str -> {

if ("8888".equals(str)) {

return; //此处作用跳出当前循环,继续下一轮 相当于 for循环continue的作用

// break; //IDEA提示错误

}

System.out.println(str);

});

//输出:6666 7777 9999

lamada表达式中foreach如何退出循环

(在效率上我们的普通循环可能比 lamada还快,合理选择,那个会用哪个) 方式一:可以使用anyMatch()方法,anyMatch()里接收一个返回值为boolean类型的表达式,只要返回true就会终止循环,这样可以将业务逻辑写在返回判断结果前。 方式二:可以使用filter()方法,思路是一样的,其中findAny表示只要找到满足的条件时停止

break在switch中的应用

Java中的switch语句 (别纠结default后要不要break,只要你规范的把default放到最后,写不写无所谓,毕竟往下没其他代码运行了,但是case的时候要加上break,除非你有特殊需求)

语法:switch(表达式) {

case 目标值1:

执行语句1

break;

case 目标值2:

执行语句2

break;

case 目标值n:

执行语句n

break;

default:

执行语句n+1

break;

}

switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,

比如byte、short、int、char、还有枚举、String;

注意enum是JDK5引入,switch支持String是JDK7支持

需要强调的是:long类型是不能作用在switch语句上的。

这块的注意事项: ①:break语句是可选的,如果省略程序会执行紧接于其后的语句,一直到遇到break或整个switch语句运行完。

switch (2){

case 1:

System.out.println("星期一");

case 2:

System.out.println("星期二");

case 3:

System.out.println("星期三");

default :

System.out.println("输入的数字不正确...");

}

System.out.println("输出=======星期二、星期三、输入的数字不正确...==============");

②:default语句是可选的,当表达式的值与case表达式常量的值都不匹配时,就运行default子句。

switch (7){

case 1:

System.out.println("星期一");

case 2:

System.out.println("星期二");

case 3:

System.out.println("星期三");

}

System.out.println("输出=======无输出==============");

switch (5){

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

default :

System.out.println("输入的数字不正确...");

}

System.out.println("输出=======输入的数字不正确...==============");

③:default与case顺序在有break时无所谓,没有的话程序会执行紧接于其后的语句直到遇到break语句。

switch (5){

default :

System.out.println("输入的数字不正确...");

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

}

System.out.println("输出=======输入的数字不正确... 、星期一 ==============");

switch (5){

default :

System.out.println("输入的数字不正确...");

break;

case 1:

System.out.println("星期一");

case 2:

System.out.println("星期二");

case 3:

System.out.println("星期三");

}

System.out.println("输出=======输入的数字不正确...==============");

switch 中 break和return的区别

break只会退出当前switch语句,会继续执行下面的代码 return 直接跳出当前方法,不会执行下面的代码 即:break只是退出当前switch块,不影响switch语句之后其他代码的执行。而return结束整个方法,无论switch块之后是否有其他代码需要执行。

至于选择break还是return根据你的业务需求来定

public static String getName(int i) {

switch(i) {

case 1:return "小明"; //正确代码

case 2:return "小红"; //正确代码

case 3:return "小强"; //正确代码

default: return null; //正确代码

}

}

Java中switch和if语句的区别

1、相同点

都是用来处理多分支条件的结构是用来处理多分支条件的结构。

2、不同点

(1)switch只做等值判断;

(2)if没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况。

java中的循环

java中的循环有四种

死循环

while (true) {

}

for (; ; ) {

}

循环也由四部分组成

1.初始部分:循环判断的变量

2.循环条件:布尔表达式

3.循环操作:循环执行的代码

4.迭代部分:更新循环变量

循环之间的区别:

for循环和其他两个循环的区别:

for循环(标准写法)执行结束后,初始化条件就不能用了。而其他两个循环可以。

实际开发中:能用for就用for,否则考虑使用while,do…while

do…while循环和其他两个循环的区别:

do…while循环的循环体至少执行一次,而其他两个循环是先判断,然后决定是否执行。

while循环 while的特点:首次判断不满足,则一次都不会执行。先判断,再执行,适用于循环次数明确的情况 ==do-while循环 ==

==for循环 ==

相关推荐

超详细!三种方法来绘制Venn图
365bet正网

超详细!三种方法来绘制Venn图

📅 07-14 👁️ 9314
华为手环 10
最佳娱乐365bet娱乐场下载

华为手环 10

📅 07-13 👁️ 8482
网络用词kkb什么意思 缩写的人是因为害羞
最佳娱乐365bet娱乐场下载

网络用词kkb什么意思 缩写的人是因为害羞

📅 07-01 👁️ 3491