Java Switch在多种情况下使用变量的最佳实践

浮点数

我想要一个如下的switch语句:

switch (something)
{
    case 1:
        int a = 3;
        ...
        break;
    case 2:
        int a = 4;
        ....
        break;
}

这是行不通的,因为无法在该范围内重新定义a。我看到以下选项:

  1. 在情况2中,只需加上“ a = 4”
  2. 将每个案件放在括号中
  3. 在switch语句之前定义变量
  4. 在情况2中使用其他变量名

我真的不喜欢这四个。该走哪条路,还是我错过了最佳解决方案?

我看到了这样的问题一个,用括号这表明,但他们不是要做到这一点的最好办法,但它得到工作的。

安德鲁·斯科特·埃文斯(Andrew Scott Evans)

我猜您正在捕获带有llegalstateexception的任何异常并使用默认块。

default:
     doSomething();
     break;

甲骨文的风格指南不使用大括号。它还说,只要语句没有间断,都应添加注释。

但是,出于可读性和可靠性的考虑,任何多于一行的内容都可以用大括号括起来,而不会影响性能。花括号告诉编译器创建一个新的作用域,并将该代码作为一个块执行。如果您要做的只是更改a,那么这实际上不是必需的。如果您可以将大写的switch case语句写在一行而不用大括号括起来,请这样做。Java中的许多东西都不能在一行实例中包含大括号,包括if语句。

接下来,您可以在switch语句之外的语句中重新定义需要重用或设置的任何变量。这将是最小化整数的连续实例化的最佳实践。

如果多于一行,则应尝试制作一些方法,然后进行以下操作:

int a=0;

switch (something)
{
    case 1:{
        a = 3;
        ...
        break;
     }
     case 2:{
        a = 4;
        ....
       break;
    }
    default:
    {
       try{
           throw new IllegalStateException();
       }catch(IllegalStateException e)
       {
           e.printStackTrace();
       } 
   } 
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一般情况下登录Java:最佳实践?

Java switch语句-在某种情况下使用变量,在另一种情况下声明

Java switch语句多种情况

Java在不使用静态对象的情况下跨其他对象共享对象的最佳方法

在不使用Objective C中的switch语句的情况下显示评级图像的最佳实践

在这种情况下,使用IF或SWITCH或“动态函数名称”的最佳实践是什么

关于Java switch语句-在每种情况下都使用return和省略符

在不初始化的情况下声明变量的最佳实践,因此无法使用auto

在许多情况下优化Java switch语句?

在不使用Java调用的情况下启动Java程序

Java的:静态变量声明的最佳实践

最佳实践:Java静态非最终变量

在不使用String的情况下引用Java中的包

在不使用Java类的情况下创建对象

在不使用系统时间的情况下以Java获取UTC

yum在不使用Java的情况下安装Libreoffice Writer

在不使用 Java API 的情况下反转堆栈

Java BufferedReader Switch的情况下,同一行存储在数组中

使用+ =运算符的Java最佳实践

在Java方法中使用标志的最佳实践

使用Java系统属性的最佳实践

最佳实践:在Java中使用DB

在不使用正则表达式的情况下,判断字符是Java中的字母还是数字的最佳方法是什么?

使用Java RegEx,如何在忽略引号和空格的情况下将一个变量与另一个变量进行比较?

在稳定排序相等的情况下使用优先队列保留插入顺序的最佳实践

$('document')。ready情况下的jQuery最佳实践

其他情况下的SQL最佳实践

默认情况下是否安装Java?

如何在不初始化Java中for循环的情况下重用变量?