为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

DOGs 提问者

哦哦,明白!谢谢!
2015-03-26 回复 有任何疑惑可以回复我~
#2

发条橙 回复 DOGs 提问者

不客气
2015-03-26 回复 有任何疑惑可以回复我~
#3

DOGs 提问者

非常感谢!
2015-03-26 回复 有任何疑惑可以回复我~

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

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

             case '一':

            case '三':

            case '五':

是一样的

2 回复 有任何疑惑可以回复我~
#1

DOGs 提问者

就是在没有default的情况下,如果全部是case的话,再加上没有匹配到的话,就会一直循环;而加上default的话,就是在匹配不到case的情况下,执行default的代码块,然后输出default的内容,结束循环?
2015-03-26 回复 有任何疑惑可以回复我~

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 '日':来替换掉啊,效果是一样的。


3 回复 有任何疑惑可以回复我~
#1

mito

既等于五又等于六吗。。。
2015-03-26 回复 有任何疑惑可以回复我~
#2

DOGs 提问者

哦,去掉break的话,这个代码的意义就不大了。省略default我一开始以为是直接把default去掉,而不是用case来代替。哈哈哈。
2015-03-26 回复 有任何疑惑可以回复我~
#3

DOGs 提问者 回复 mito

去掉break的话,每个输出语句System都会输出各自的内容。
2015-03-26 回复 有任何疑惑可以回复我~
#4

mito 回复 DOGs 提问者

那也得先满足case条件啊。。。。
2015-03-26 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信