在返回的情况下中断..并且默认情况下

Ala*_*n H 38 c coding-style switch-statement

我的OCD使我在编写case语句时添加"break",即使它们不会被执行.请考虑以下代码示例:

switch(option) {
    case 1:
        a = 1;
        b = 7;
        break;
    case 2:
        a = 2;
        b = 4;
        return (-1);
        break;
    default:
        a = -1;
        break;
}
Run Code Online (Sandbox Code Playgroud)

我的两个问题是:
对于"案例2:",我真的不需要休息,但是无论如何将它放在那里是一个好主意吗?对于"默认:".这纯粹是强迫症,还是有任何真正的理由在这里休息?

Jam*_*son 35

你不需要休息,但拥有它们没有任何害处.在我看来,保持代码结构化是值得的,有一些无关紧要的陈述.

  • 一个好的编译器不会在返回或asm-goto之后生成任何代码.所以没有伤害...... (5认同)
  • 呃,编译器不会自动重写作者的来源以删除中断或任何内容. (2认同)

cha*_*aos 25

我同意在最终的默认情况下休息,并且不同意退货后的休息时间.(一位同事做了那些伤害了我的眼睛.)

我还缩进开关以减少缩进级别的扩散.:)即:

switch(option) {
case 1:
    a = 1;
    b = 7;
    break;
case 2:
    a = 2;
    b = 4;
    return -1;
default:
    a = -1;
    break;
}
Run Code Online (Sandbox Code Playgroud)

(我也认为,由于return语句不是一个函数,因此强制执行多余的样式并使其看起来像是一个函数是不合适的.)

  • 我同意.它就像对某人说"回家"并在他们离开后,打电话到空房间"你现在可以停止工作了" (3认同)
  • 大概。但严肃地说,为开关使用两个缩进级别实际上可以传达任何信息吗?事实并非如此。该开关是一个控制级别,而不是两个,并且这些情况很容易被理解为它的交替。 (2认同)
  • 你的缩进级别显然更好,任何不同意的人都可能是Emacs用户或其他东西. (2认同)
  • @JamesThompson我不同意.Vim只在这里.如果一个语句后面需要一个左括号,那么该括号后面的行会缩进.QED (2认同)

sam*_*moz 8

默认情况下的休息只是个人偏好的问题.

回来后休息几乎与我相矛盾.我将删除休息,只是为了使return语句真正脱颖而出.