default是不是“以上均不执行,则…”的意思?

来源:4-6 Java条件语句之 switch

慕虎1164778

2019-01-05 22:04

在“不得不说的几点小秘密3”中,如果没有break也没有default,则case1case2case3都作为输出结果。但是有了default就说明case123都不执行才执行default,所以虽然没有break,但是只执行default语句?


写回答 关注

4回答

  • 小小杏鲍菇
    2019-01-06 00:03:24
    已采纳

    我的理解是break的目的是告诉系统当case满足时执行的代码到break之前,如果没有break,系统就只认识switch语句最后一个}符号,其他的case都会忽略掉。

    例:

    int num=1;

    switch (num){

        case 1:

               System.out.println("111");

       case  2://由于系统没有看到break,会忽略掉这个case

               System.out.println("222");  //但是系统认识这句话,所以当case值满足时,这句会执行

      case  3://同样,由于系统没有看到break,会忽略掉这个case  

               System.out.println("333");  //但是系统认识这句话,所以当case值满足时,这句会执行 

      default://同样,由于系统没有看到break,会忽略掉这个default

               System.out.println("444");  //但是系统认识这句话,所以当case值满足时,这句会执行 

    }

    当num=1时执行的结果是:

    111

    222

    333

    444

    当num=2时执行结果是:

    222

    333

    444

    当num=4时执行结果是:

    444


    慕虎1164...

    谢谢!

    2019-01-09 17:49:36

    共 1 条回复 >

  • 慕圣3045325
    2019-03-27 12:15:45

    o(╥﹏╥)o下面那段

    如果int num=1,结果是

    1

    超出范围

    1

    如果int num=2,结果是 2

    如果int num=3,结果是 

    超出范围

    3


  • 慕圣3045325
    2019-03-27 12:12:08

    mark

    同意楼上的说法,break会跳出switch

    遇上匹配的case就开始向下执行,没有匹配的case就从default开始向下执行

    直到遇到break或者执行到了末尾

    所以,如果不写break,并且把default放在中间位置,没有匹配的case时,会把default和default后面的case都执行


    比如正常break写法

    switch(num){

    case 1:

    System.out.println(num);

    break;

    default:

    System.out.println("超出范围");

    break;

    case 2:

    System.out.println(num);

    break;

    }

    如果int num=1,结果是 1

    如果int num=2,结果是 2

    如果int num=3,结果是 超出范围


    然后不带break的话

    switch(num){

    case 1:

    System.out.println(num);

    default:

    System.out.println("超出范围");

    case 2:

    System.out.println(num);

    }

    如果int num=1,结果是

     1

    超出范围

    2

    如果int num=2,结果是 2

    如果int num=3,结果是 

    超出范围

    2


    慕圣3045...

    额……最后那段写错了 应该是 如果int num=3,结果是 超出范围 3

    2019-03-27 12:13:33

    共 1 条回复 >

  • 到底是幼稚
    2019-01-06 17:57:45

    break 的作用是跳出switch的“{}”,没有break就不会跳出,将成立的“case语句后面的输出语句”全部执行一遍。还有一点需要注意的就是程序是从上向下依次执行的。

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题