问答详情
源自:4-6 Java条件语句之 switch

case...break与switch...default ???

"3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束 如"这里的意思是指case和break一起使用,而default是switch的结束语吗?如果我是这样理解的话,“5、 default 块可以出现在任意位置,也可以省略”又有矛盾了?

提问者:DOGs 2015-03-26 17:37

个回答

  • 发条橙
    2015-03-26 19:54:36
    已采纳

    前面那半句不对.. 如果没有default 而且没有匹配到会报错

  • 发条橙
    2015-03-26 19:33:15

    default 的意思是 如果没有遇到没有跟case匹配的 就执行default语句  但是default语句并不是switch 的结束语  你也可以把所有情况列全 就不用default语句了。

    break的意思你可能没有太理解,它代表的是跳出循环 或者当前块,如果 没有break的话他就会继续执行下面的代码  效果跟

                 case '一':

                case '三':

                case '五':

    是一样的

  • Perona
    2015-03-26 17:59:20

    case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容。对,没错,就是case和break一起使用,如果没有break,那么它还是继续执行下一个语句块的内容。default就是默认的意思,也就是说如果case没有匹配到的话,就会执行default里面的内容。

    就拿课程里面这个做栗子吧

    public class HelloWorld {

        public static void main(String[] args) {

         char today='一';

            switch(today){

                case '一':

                case '三':

                case '五':

                    System.out.println("吃包子"); 

                    break;

                case '二':

                case '四':

                case '六':

                    System.out.println("吃油条"); 

                   break;

               default:

                System.out.println("吃主席套餐");

            }

    如果把这代码块里面的break都给删了,那么控制台就会依次输出:

    吃包子
    吃油条
    吃主席套餐

    default我们也可以省略掉,是不是可以用一个case '日':来替换掉啊,效果是一样的。