java - 如何退出 switch 表达式中的方法?
问题描述
我正在研究 switch 表达式,我想知道如何将控制权传递给调用程序方法,因为“yield”只是从 switch 表达式中退出。我找不到任何方法让它表现得像经典的 switch 语句。
甚至可能吗?
更新:这是一小段代码。
public static boolean isTimeToParty(DayOfWeek day) {
boolean isParty = switch (day) {
case MONDAY -> false;
case TUESDAY -> {
yield false; //return not allowed
}
case WEDNESDAY -> false;
case THURSDAY -> false;
case FRIDAY -> false;
case SATURDAY -> true;
case SUNDAY -> true;
};
return isParty;
}
我的意思是:如何避免给变量赋值然后调用return [variable_name]?我想同时返回值和退出开关。
提前致谢
解决方案
简单return
的调用方法。如果您只想停止在同一开关中处理更多案例,请使用break
. 这和下面的示例适用于 switch语句,而原始问题与 switch表达式有关。
public static void main(String[] args) throws Exception {
switch(1) {
case 1:
System.out.println("Case one");
// no break, so case processing goes one
case 2:
System.out.println("Case two");
break; // we bail out here and do not process further cases
default:
System.out.println("Default case");
}
switch(2) {
case 2:
return;
default:
System.out.println("Default case");
}
System.out.println("This is the end - should not be printed");
}
生成输出
Case one
Case two
推荐阅读
- javascript - 预检响应 TinyMCE 图像上传时出现 CORS 500 错误
- python - 在同一图中绘制多条曲线 (x, y1, y2, x, y3, y4)
- parameters - 如何在 Quicksight 中创建动态日期参数?
- splunk - Splunk:组合多行的字段
- reactjs - 如何从 React + Typescript 中另一个文件中的导入组件调用函数?
- python - 如何使用 loc 的多个条件更改数据框中的值?
- pytorch - colab : 模型 = torch.hub.load('pytorch/fairseq', 'roberta.large') 错误
- excel - Excel - 为字符串赋值并计算总计
- python - 在 DataFrame 上使用 .apply 时如何打印当前行号
- javascript - 具有时间序列和附加 y 轴的数据数组 c3.js