switch 分别在for和forEach中的使用

本文详细比较了forEach与for循环中使用break、continue和return关键字在switch语句中的不同效果,包括跳出循环、结束循环和控制流程。展示了在两种循环结构中,这些关键字如何影响程序执行路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

forEach与for循环  使用break; continue;return;关键字的区别:
forEach 不能使用break,continue关键字,return关键字为跳过本次循环。

for循环中continue为跳过本次循环,break为结束循环。同样return也结束循环,但是结束循环的同时,该方法也会结束,不再执行下一步。

下面记录switch分别在for和forEach中的区别:

switch在for循环中:

   List<String> list =  List.of("a","b","c");
    for(int i = 0;i<list.size();i++){
      switch (list.get(i)) {
        case "a":
        {
          System.out.println("return"+i);
          return;
        }
        case "b":{
          System.out.println("b"+i);
        }
         default:
          System.out.println("default"+i);
      }
        System.out.println(1+i+"次循环结束");
    }
    System.out.println("流程结束");

执行结果为:return0

    List<String> list =  List.of("a","b","c");
    for(int i = 0;i<list.size();i++){
      switch (list.get(i)) {
        case "a":
        {
          System.out.println("break"+i);
          break;
        }
        case "b":{
          System.out.println("b"+i);
      }
        default:{
          System.out.println("default"+i);
     }
    
      System.out.println(1+i+"次循环结束");
    }
    System.out.println("流程结束");

执行结果:break0
1次循环结束
b1
default1
2次循环结束
default2
3次循环结束
流程结束

       List<String> list =  List.of("a","b","c");
        for(int i = 0;i<list.size();i++){
            switch (list.get(i)) {
                case "a":
                {
                    System.out.println("continue"+i);
                    continue;
                }
                case "b":{
                    System.out.println("b"+i);
                }
                default:
                    System.out.println("default"+i);
            }
            System.out.println(1+i+"次循环结束");
        }
        System.out.println("流程结束");

执行结果:continue0
b1
default1
2次循环结束
default2
3次循环结束
流程结束

总结:for循环内使用switch,return将直接结束循环,并结束方法。break;只对switch影响,将不再往下执行,switch内默认执行的方法default不再执行。switch外则没有影响。continue switch不再往下执行,同时也跳过本次循环。

switch在forEach中:

        List<String> list =  List.of("a","b","c");
            list.forEach(
            t ->{
              switch (t) {
                case "a":
                {
                  System.out.println("return:"+t);
                  return;
                }
                case "b":{
                  System.out.println("b");
                }
                default:{
                    System.out.println("default:"+t);
                }
              }
              System.out.println(t+"循环结束");
            }
    );
        System.out.println("流程结束");

执行结果:return:a
b
default:b
b循环结束
default:c
c循环结束
流程结束

        List<String> list =  List.of("a","b","c");
            list.forEach(
            t ->{
              switch (t) {
                case "a":
                {
                  System.out.println("break:"+t);
                    break;
                }
                case "b":{
                  System.out.println("b");
                }
                default:{
                    System.out.println("default:"+t);
                }
              }
              System.out.println(t+"循环结束");
            }
    );
        System.out.println("流程结束");

执行结果:break:a
a循环结束
b
default:b
b循环结束
default:c
c循环结束
流程结束

总结:forEach使用switch,使用return;switch不再往下执行,同时也跳过本次循环。(和for循环使用continue 一样)使用break;只对switch影响,将不再往下执行,switch内默认执行的方法default不再执行。switch外则没有影响(和for循环一样)。continue ;break;forEach内无法使用。

ps:switch(t) case "a":{} case "b": {}case "c": {break}case "d": {}如果t= b则,从b处开始执行,如果不写break。将执行到c的代码块{}。c处有break 所以不会执行d了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值