switch语句中使用break和return哪个更好?

秃德6*_*666 3 java switch-statement memory-efficient

我想知道在 switch 语句中使用break或return时的一些区别。哪个更有效率?有人可以向我解释一下吗?非常感谢。代码如下:

public void foo(){
    int i = 10;
    switch (i) {
        case 1: {
            //code here
            break;  //or return;
        }
        case 2: {
            //code here
            break;  //or return;
        }
        // code  code
        // code  code
        // code  code
        case 10:{
            //code here
            break;  //or return;
        }
        default:{
            //code here
            break;  //or return;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*sky 7

两者截然不同——试图在效率方面比较它们简直是无意义的。中断终止 switch 后续子句的执行,并在 switch 块之后继续执行。返回终止当前方法的执行并将控制权返回给调用方法。它们唯一的共同点是代码不会失败以执行任何进一步的情况。

一般来说,我会对使用 switch 语句的 return 持谨慎态度,不是因为对性能有任何影响,而是因为它使推理代码的行为变得更加困难。(我还认为 Java 中的 switch 语句几乎从不需要,它在程序中的存在通常表明设计失败,但这是另一个问题)