我想要一个如下的switch语句:
switch (something)
{
case 1:
int a = 3;
...
break;
case 2:
int a = 4;
....
break;
}
这是行不通的,因为无法在该范围内重新定义a。我看到以下选项:
我真的不喜欢这四个。该走哪条路,还是我错过了最佳解决方案?
我看到了这样的问题一个,用括号这表明,但他们不是要做到这一点的最好办法,但它得到工作的。
我猜您正在捕获带有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] 删除。
我来说两句