java - 如何在 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"));
}
}
});
解决方案
您已经在 switch 语句本身中编写了代码行 calculation.multiply(new BigDecimal("30")) 。所以它是案例 2 的一部分。
但是由于您在该行之前中断,因此永远不会到达该代码行(即使对于 case2)。您应该真正按照注释中所述的缩进来轻松识别此类错误。
推荐阅读
- python-3.x - Paylocity API 访问令牌
- java - RxJava2 - .blockingFirst() 未收到任何事件
- javascript - 这个生成器如何返回 3?
- vuejs2 - Vuetify 图标显示不正确:它们显示为“$vuetify.icons...”
- azure-sql-database - Azure SQL Server 与表存储性能对比
- sql - 如何在 SQL 中跳过 case 语句的 then 部分
- c# - Html.BeginForm 后空模型
- amazon-dynamodb - 如何避免热分区并仍然提供必要的访问模式
- excel - 从 Outlook 运行 Excel 宏
- yii2 - 选定的 select2 小部件将更新其他 select2