Java switch语句有两种情况还是if语句?

时间:2014-09-18 14:56:20

标签: java oop if-statement switch-statement

您好>出于兴趣,在使用java编程时,使用if语句或switch语句对于只能有两个结果的东西会更经济。

例如:

char c = 'a';
if (c == 'a') {
   //do something
}
else if (c == 'A') {
   //do something else
}

char c = 'a';
switch (c) {

   case 'a':
      //do something
      break;

   case 'A':
      //do something else
      break;
}

哪个会更好?

4 个答案:

答案 0 :(得分:2)

答案实际上取决于使用的兴趣。我通常做的是,如果我的条件更多(3或以上),我会选择转换。否则,我只需使用if-else-if

  

Java switch语句有两种情况还是if语句?

对于你的情况,第一个足够好, if else 。如果有更多这样的情况,请选择开关。这增加了可读性与丑陋的好if else's

答案 1 :(得分:1)

如果您确定自己只有两个选项,请使用if else。 如果您不确定这是一个更大的项目,我会选择切换案例,因为如果需要,它更容易添加案例。

答案 2 :(得分:1)

在您的情况下,只有两个值,if-else语句比switch语句快。 但并非总是如此,特别是当你有很多案例需要测试时。 您可以在此处找到更多信息:

Why switch is faster than if

PS:我注意到了一件事,但也许你的代码需要它:如果要测试的元素只能有两个值, if-else 应该优于 if-else如果

希望它有所帮助。

答案 3 :(得分:0)

switch语句通常被认为比if-else更容易出错,即忘记default个案或break。在短条件的情况下说两个结果if-else可能更可取,速度不太可能有任何可辨别的差异。

除此之外,清洁代码 p37 中的 Robert Martin 提出了一个很好的论据,为什么switch语句不是非常OOP。< / p>