相关疑难解决方法(0)

switch语句是否应该包含默认子句?

在我的第一次代码审查(前一段时间)中,我被告知在所有switch语句中包含一个default子句是一种好习惯.我最近记得这个建议,但不记得理由是什么.这对我来说听起来很奇怪.

  1. 总是包含默认声明是否有合理的理由?

  2. 这种语言是依赖的吗?我不记得当时我用的是什么语言 - 也许这适用于某些语言而不适用于其他语言?

default switch-statement

236
推荐指数
10
解决办法
20万
查看次数

我是否需要`if ... else if`语句中的最后一个'else`子句?

if...else if我见过的每个例子都包含一个最终else条款:

if (condition1) {
  doA();
} else if (condition2) {
  doB();
} else if (condition3) {
  doC();
} else {
  noConditionsMet();
}
alwaysDoThis();
Run Code Online (Sandbox Code Playgroud)

我理解这对于嵌套if...else语句来说基本上是语法糖:

if (condition1) {
  doA();
} else {
  if (condition2) {
    doB();
  } else {
    if (condition3) {
      doC();
    } else {
      noConditionsMet();
    }
  }
}
alwaysDoThis();
Run Code Online (Sandbox Code Playgroud)

我从来没有见过的任何例子if...else if省略了最后else条款.但是看到简单的if语句(没有else子句)是有效的,并且通过上面的等效"嵌套语句",我的直觉告诉我这样做是可以的:

if (condition1) {
  doA();
} else if (condition2) {
  doB();
} else …
Run Code Online (Sandbox Code Playgroud)

javascript conditional if-statement

16
推荐指数
3
解决办法
3万
查看次数