【发布时间】:2021-01-24 13:16:37
【问题描述】:
我有两组条件。一个有两个可能的值,另一个有更多(在这个例子中,我写了 3 个案例,但最多可能有 8 个)。哪个代码运行速度更快,错误提示更少(更准确)?
代码 a)
if (letter.equals(a)) {
switch (number) {
case 1:
.........
case 2:
.........
case 3:
.........
}
} else if (letter.equals(b)) {
switch (number) {
case 1:
.........
case 2:
.........
case 3:
.........
}
}
代码 b)
switch (number) {
case 1:
if (letter.equals(a)) {
.........
} else if (letter.equals(b)) {
.........
}
case 2:
if (letter.equals(a)) {
.........
} else if (letter.equals(b)) {
.........
}
case 3:
if (letter.equals(a)) {
.........
} else if (letter.equals(b)) {
.........
}
}
如果您认为除了这两个之外还有更好的选择,请告诉我。 (我还可以创建一个同时获取 letter 和 number 的参数,并使用它创建 6 个案例。)
提前谢谢你!
【问题讨论】:
-
这是基于意见的 .. 但我更喜欢 a)。
-
当您考虑它时,在这两种结构中您都必须通过 if/else 并恰好切换一次。性能在这里并不重要。
标签: java if-statement switch-statement compiler-optimization