当前位置: 首页 > 面试题库 >

Java切换案例:是否带有花括号?

那开济
2023-03-14
问题内容

考虑以下两个带有花括号的代码段:

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;
}

我知道,在带有大括号的代码段中,通过将每个案例括在大括号中创建了一个新的作用域。但是,如果每种情况都不需要新的作用域(即没有重用变量名),那么将大括号与案例一起使用是否会对性能造成任何形式的损失?


问题答案:

在使用大括号的情况下会有任何性能损失吗?

没有。

花括号可以帮助编译器确定变量,条件,函数声明等的范围。将代码编译成可执行文件后,它不会影响运行时性能。



 类似资料:
  • 问题内容: 我正在看书,有一些带有花括号的程序示例 例如 问题答案: 这是一个代码块。在其中声明的变量在上部代码块(这些curl之外的方法体)中不可见,即它们的作用域更加有限。

  • 此时,我使用的开关盒如下: 我想做的是有一个这样的数组或字符串: 这可能吗? 如果是怎样?

  • 有人能建议我如何替换下面的代码吗? 如何重写代码以避免重复块{code>case 3:{code block A;break;} ? 如何将案例1和案例3的代码组合起来?

  • Apache Camel(在JavaDSL)中是否有类似于Java开关盒的构造? 例如: 可以翻译成更类似于switch的东西吗?我的意思是,我不想使用简单的谓词,只使用body元素类型的值。还是我的方法完全错了?(这可能是合理的)

  • 问题内容: 如您所知,角形和细枝形都有共同的控制结构-双花括号。如何更改Angular的默认值? 我知道我可以在Twig中做到这一点,但是在某些项目中,我只能做到JS。 问题答案: 您可以使用service 更改开始和结束插值标签。一个方便的地方是在模块初始化时。 https://docs.angularjs.org/api/ng/provider/$interpolateProvider

  • 问题内容: 假设我们在Python 3.x中(我猜在Python 2.6和Python 2.7中也)具有以下功能: 如果运行它们,我们将得到: 这三个函数提供相同的结果(值和类型),它们似乎是等效的。 但是,其中哪个陈述更正确? 这些定义中是否有副作用? 相同的问题适用于以下情况,并返回了多个值: 在这种情况下,每个函数都返回一个 元组 ,但是我的问题仍然保持不变。 问题答案: Python中的括