首页 > 解决方案 > 隐藏案例,直到满足参数

问题描述

我正在尝试编写天气状况模型。我的开关/外壳有问题。我希望我的一个案例不可用,单元两个变量由用户填写。我该怎么做?这是代码剪辑

 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);

标签: javaswitch-statement

解决方案


“初级”的答案是:有多个 switch 语句。

换句话说:“控制器”组件了解存在哪些不同的“菜单”,以及做出该决定需要满足哪些先决条件。

要将其变成现实世界的解决方案,您可能希望在此处使用多态性。比如:有一个基类,它提供了一个showMenu()方法,该方法显示选择并要求输入所需的输入。该类还具有(抽象)具有不同行为的方法。

然后根据需要添加多个 @Override 这些基本方法的子类。

最后,您的控制器“仅”必须确定要实例化哪个类才能显示当前有效的选择。


推荐阅读