A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

default是在中间,上下都有case语句,请问default语句是在case语句全部执行完后再执行么?或者是等case执行完后再执行default语句?求详解,谢谢!

9 个回复

倒序浏览
无论default在switch语句中的哪个位置,JVM都会先找case,从第一个找到的case开始执行,如果所有的case都不满足条件,才会执行default。

所以,default的位置可以随便放
回复 使用道具 举报 1 0
不系之舟王 来自手机 中级黑马 2014-9-15 00:22:01
藤椅
先执行case语句,case都不满足条件,最后执行default,至于default放哪,一般放最后,楼上说放哪都行,明天我研究一下
回复 使用道具 举报
不放最后一行好像会有点问题 具体忘了
回复 使用道具 举报
default就是如果没有符合的case就执行它
回复 使用道具 举报
本帖最后由 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:06
7#
楼上说的很详细,正解
回复 使用道具 举报
可以自己通过代码运行一次,更有助于自己的记忆。不管default的位置在哪里,只有case中列出的值都不符合switch()中的变量,才会调用default
回复 使用道具 举报
huangxuanheng 来自手机 中级黑马 2014-9-15 21:00:47
9#
先case,如果case不满足,执行后default,但必须注意break语句
回复 使用道具 举报
楼上解释的很好,帮我解决了另外一道题目,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马