java - 隐藏案例,直到满足参数
问题描述
我正在尝试编写天气状况模型。我的开关/外壳有问题。我希望我的一个案例不可用,单元两个变量由用户填写。我该怎么做?这是代码剪辑
switch (choice) {
case 0:
System.out.println("Exit");
break;
case 1:
int yInch = in.nextInt();
yester = CondYest(yInch);
break;
case 2:
System.out.println("Enter/Update Today's Weather Prediction");
int tInch = in.nextInt();
today = CondToday(tInch);
break;
case 3:
System.out.println();
System.out.println("Display Snow Prediction");
System.out.println("Today's Snow Fall is " + today + " inches!");
System.out.println("Yesterday's Snow Fall was " + yester + " inches!");
System.out.println();
break;
default:
System.out.println("Please Try again");
break;
}
} while (choice != 0);
解决方案
“初级”的答案是:有多个 switch 语句。
换句话说:“控制器”组件了解存在哪些不同的“菜单”,以及做出该决定需要满足哪些先决条件。
要将其变成现实世界的解决方案,您可能希望在此处使用多态性。比如:有一个基类,它提供了一个showMenu()
方法,该方法显示选择并要求输入所需的输入。该类还具有(抽象)具有不同行为的方法。
然后根据需要添加多个 @Override 这些基本方法的子类。
最后,您的控制器“仅”必须确定要实例化哪个类才能显示当前有效的选择。
推荐阅读
- android - Android highcharts库图表加载完成监听事件
- c# - 如何以编程方式查找在 C# Winform 中分配的所有快捷键的列表?
- excel - Excel-VBA-将范围从一张表复制到多个命名表
- python - python2中的pytorch,opencv安装问题在python3中安装了cv库
- python - Robot Framework 没有运行 python 代码,它在记事本中打开代码
- css - 在 Outlook 中使用实际 URL 自动扩展电子邮件中的超链接(防止网络钓鱼)
- angular - 如何使用模板驱动表单验证 angular8 中的多个电子邮件 ID
- javascript - 增加复制的字符串编号javascript
- r - foreach %dopar% 中的表达式()
- python - 如何使用 brew 并为 Python 3.6.8 安装 precommit