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

为什么我们需要一个接一个的案例陈述?

为什么我们需要一个接一个的案例陈述?

冉冉说 2019-06-24 09:40:42
为什么我们需要一个接一个的案例陈述?为什么编译器不自动在开关中的每个代码块之后放置中断语句?是出于历史原因吗?何时要执行多个代码块?
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

有时,将多个案例与相同的代码块关联起来是有帮助的,例如

case 'A':case 'B':case 'C':
    doSomething();
    break;case 'D':case 'E':
    doSomethingElse();
    break;

等等。只是个例子。

在我的经验中,“失败”并在一种情况下执行多个代码块通常是不好的风格,但在某些情况下可能会使用它。


查看完整回答
反对 回复 2019-06-24
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

历史,是因为case本质上定义了label,也称为目标点一种goto打电话。Switch语句及其相关案例实际上只是表示具有多个潜在入口点进入代码流的多向分支。

尽管如此,人们几乎无数次地注意到,break几乎所有的默认行为都是您希望在每一种情况结束时的默认行为。


查看完整回答
反对 回复 2019-06-24
?
慕容708150

TA贡献1831条经验 获得超4个赞

Java来自C,这是C的语法。

有时候,您希望多个CASE语句只有一个执行路径。下面是一个例子,可以告诉你一个月里有多少天。

class SwitchDemo2 {
    public static void main(String[] args) {

        int month = 2;
        int year = 2000;
        int numDays = 0;

        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDays = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                numDays = 30;
                break;
            case 2:
                if ( ((year % 4 == 0) && !(year % 100 == 0))
                     || (year % 400 == 0) )
                    numDays = 29;
                else
                    numDays = 28;
                break;
            default:
                System.out.println("Invalid month.");
                break;
        }
        System.out.println("Number of Days = " + numDays);
    }}


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 407 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号