java开关和if/else的哪种组合更快?为什么?
我有两组条件。一个有两个可能的值,另一个有更多(在这个例子中,我写了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个案例。)
提前谢谢
# 1 楼答案
答:在这种情况下,性能不是问题。因为不管你怎么用这个,实际执行的数字都是一样的。但是你可以提高代码的可读性,减少出错的可能性
与其担心性能,不如从坚实的原则开始。你为什么不把这个大方法分解成一些小方法,它们有具体的责任。它将使代码更漂亮,更不容易出错。例如:
方法: