黑马程序员技术交流社区

标题: switch语句里的default的语句上下都有case语句的话,default是什么时候执行呢? [打印本页]

作者: happyto1021    时间: 2014-9-14 22:39
标题: switch语句里的default的语句上下都有case语句的话,default是什么时候执行呢?
default是在中间,上下都有case语句,请问default语句是在case语句全部执行完后再执行么?或者是等case执行完后再执行default语句?求详解,谢谢!
作者: 态度要诚恳    时间: 2014-9-14 23:33
无论default在switch语句中的哪个位置,JVM都会先找case,从第一个找到的case开始执行,如果所有的case都不满足条件,才会执行default。

所以,default的位置可以随便放
作者: 不系之舟王    时间: 2014-9-15 00:22
先执行case语句,case都不满足条件,最后执行default,至于default放哪,一般放最后,楼上说放哪都行,明天我研究一下
作者: 谢建平    时间: 2014-9-15 01:22
不放最后一行好像会有点问题 具体忘了
作者: 诛闻会    时间: 2014-9-15 09:19
default就是如果没有符合的case就执行它
作者: hailong    时间: 2014-9-15 09:43
本帖最后由 hailong 于 2014-9-15 09:48 编辑

default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所有的case都不满足条件时,才执行default
default在最后一行时下面的break可以省略不写,但如果没有在最后一行default下面需要加上break,否则执行完default后会继续执行下面的代码直到遇到break跳出循环
如:
class Demo {

        public static void main(String[] args) {
                int x = 5;
                switch (x) {
                case 1:
                        System.out.println("A");
                        break;
                case 2:
                        System.out.println("B");
                        break;
                default:
                        System.out.println("结束");
                case 3:
                        System.out.println("C");
                        break;
                case 4:
                        System.out.println("D");
                        break;

                }
        }
输出结果为:结束  C
作者: 不系之舟王    时间: 2014-9-15 11:01
楼上说的很详细,正解
作者: 石头-剪刀    时间: 2014-9-15 20:19
可以自己通过代码运行一次,更有助于自己的记忆。不管default的位置在哪里,只有case中列出的值都不符合switch()中的变量,才会调用default
作者: huangxuanheng    时间: 2014-9-15 21:00
先case,如果case不满足,执行后default,但必须注意break语句
作者: lingxia125    时间: 2015-7-27 12:07
楼上解释的很好,帮我解决了另外一道题目,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2