Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带两个case的Java switch语句还是if语句?_Java_Oop_If Statement_Switch Statement - Fatal编程技术网

带两个case的Java switch语句还是if语句?

带两个case的Java switch语句还是if语句?,java,oop,if-statement,switch-statement,Java,Oop,If Statement,Switch Statement,令人感兴趣的是,当用java编程时,对于只能有两个结果的东西,使用if语句或switch语句是否更经济。 例如: char c = 'a'; if (c == 'a') { //do something } else if (c == 'A') { //do something else } 或 哪个更好?答案实际上取决于使用的兴趣。我通常会做的是,如果我的情况是3或以上,我会去转换。否则我只使用if-else-if 带两个case的Java switch语句还是if语句 对于你的

令人感兴趣的是,当用java编程时,对于只能有两个结果的东西,使用if语句或switch语句是否更经济。 例如:

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


哪个更好?

答案实际上取决于使用的兴趣。我通常会做的是,如果我的情况是3或以上,我会去转换。否则我只使用if-else-if

带两个case的Java switch语句还是if语句


对于你的情况,第一个已经足够好了,如果不是这样的话。如果有更多类似的情况,请选择切换。与大量的if-else相比,这增加了可读性。

如果您确信自己只有两种选择,那么就选择if-else。
如果您不确定,而且您正在处理一个更大的项目,我会选择switch case,因为如果需要,它更容易添加案例。

在您的案例中,只有两个值,If-else语句比switch语句快。 但这并不总是正确的,尤其是当你有很多案例要测试的时候。 您可以在此处找到更多信息:

PS:我注意到了一件事,但您的代码可能需要它:如果要测试的元素只能有两个值,if-else应该比if-else好

希望有帮助。

通常认为switch语句比if-else语句更容易出错,即忘记默认情况或中断。在一个短期条件下,比如说两个结果和一个if-else可能更可取,在速度上不太可能有任何明显的差异


此外,干净代码p37中的Robert Martin提出了一个很好的论点,解释了为什么switch语句不是很OOP。

计算行号和缩进。我认为,在这种情况下,很明显,如果它只能有两个结果,那么用else代替else不是更好吗?这个问题已经被问了好几次了。请注意,如果if-else语句的目的是分配一个或另一个值,但仅限于这两种可能性中的一种,那么最简单的方法是使用三元运算。从性能角度看,您可能不会看到太多差异。就你而言,这似乎更多的是个人偏好的问题。我会选择if/elseif或if/else,因为对于这样的简单情况,我更经常使用它。
char c = 'a';
switch (c) {

   case 'a':
      //do something
      break;

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