if
谁能解释使用,if else
或switch
在类似于以下的相当大的代码块之间的权衡(即使它可以忽略不计) ?如果比较的是 String 或另一个 Object 而不是 int,情况会有所不同吗?这些示例是用 Java 编写的,但它是一个一般性问题。
编辑
正如几个答案所述,开关会更快,如果有多种情况,可能应该使用开关。但是,没有人评论过这样if
的if else
长链。引发这个问题的原因是,我经常在无法使用开关的地方创建这些块,因为大多数情况需要多个表达式。我想排除else
感觉草率,但这并不是真正必要的,所以为什么要包括它呢?
public String getValueString(int x) {
if (x == 1) return "one";
if (x == 2) return "two";
if (x == 3) return "three";
if (x == 4) return "four";
...
return null;
}
VS
public String getValueString(int x) {
if (x == 1) return "one";
else if (x == 2) return "two";
else if (x == 3) return "three";
else if (x == 4) return "four";
...
return null;
}
VS
public String getValueString(int x) {
switch(x) {
case 1: return "one";
case 2: return "two";
case 3: return "three";
case 4: return "four";
...
}
return null;
}