首页 > 解决方案 > 如何在 Java 开关中使用开关盒外的变量?

问题描述

我在 switch 外部定义了变量并在 switch case 中使用它们。我想运行一个代码,它将获取任何开关案例的价值。此代码将在开关之外。我试过了,但我得到了像 STATEMENT UNREACHABLE 这样的错误。

这是我尝试过的:

BigDecimal firstvalue, secondvalue, calculation;


button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {


firstvalue =  new BigDecimal("45");
secondvalue = new BigDecimal("23");



switch (spinner.getSelectedItemPosition()){

case 0:
{
calculation = firstvalue.multiply(secondvalue);                      
break;
}
case 1:
{
calculation = firstvalue.add(secondvalue);
break;
}
case 2:
{
calculation = firstvalue.subtract(secondvalue);
break;
}

// Any of above case will apply for calculation 
// Then this program that is outside switch should run
   
calculation.multiply(new BigDecimal("30"));
               

}
}
});

标签: javaswitch-statement

解决方案


您已经在 switch 语句本身中编写了代码行 calculation.multiply(new BigDecimal("30")) 。所以它是案例 2 的一部分。

但是由于您在该行之前中断,因此永远不会到达该代码行(即使对于 case2)。您应该真正按照注释中所述的缩进来轻松识别此类错误。


推荐阅读