Java 切换情况:带或不带大括号?

2022-08-31 10:23:42

请考虑以下两个带大括号的代码段:

switch (var) {
  case FOO: {
    x = x + 1;
    break;
  }

  case BAR: {
    y = y + 1;
    break;
  }
}

不带牙箍:

switch (var) {
  case FOO:
    x = x + 1;
    break;

  case BAR:
    y = y + 1;
    break;
}

我知道,在带大括号的代码段中,通过将每个大小写括在大括号中来创建新的范围。但是,如果每个案例都不需要新的范围(即没有重复使用变量名称),那么将大括号与大小写一起使用是否会有任何性能损失?


答案 1

将大括号与表壳一起使用是否有任何性能损失?

没有。

大括号是为了帮助编译器计算变量的范围,条件,函数声明等。一旦代码编译成可执行文件,它不会影响运行时性能。


答案 2

从执行的角度来看,没有性能损失。

从编译的角度来看,性能略有下降,因为还有更多需要解析的内容,但是如果有人真的担心它,他们将不得不在一行上编写代码:-)

现在对于我们帖子的意见部分...我总是输入{和},因为对可维护性有惩罚,因为你可能不得不在以后把它们放进去,而且以后把它们放进去可能会很痛苦......但这是103%的个人偏好。


推荐