java - 如何使多个基于文本的 java 菜单工作?

标签 java menu switch-statement text-based system.in

我有一个电影亭的主菜单,我可以输入一个数字(在本例中为 5),它将带我进入管理菜单。问题是管理菜单有一组不同的案例,当我输入一个数字以从管理菜单访问案例时,它只会让我回到主菜单。

我不确定我可以在代码中更改什么以使其工作,我希望当我在管理菜单中输入数字时,它会执行指定的方法。

一开始我调用了 Kiosk 类的 use() 方法 哪个执行这个菜单:

当我按下 2 时,它会将我带到主菜单,而不是执行 addCustomer()

最佳答案

我想你想这样实现它:

while ((choice = readChoice()) != 'X') {
        switch (choice) {
        case '1': catalogue(); break;
        case '2': useAdmin(); break;
        }
    }

private void useAdmin() {
    char choice = admin(); // instead of assigning 5 to this option
        switch (choice) {
        case '1': listCustomer(); break;
        case '2': addCustomer(); break;
        case 'R': use();
    }
}

在您当前的实现中,您调用返回一个字符的 admin() 函数。

 switch (choice) {
        case '1': catalogue(); break;
        case '2': admin(); break;
        }

请注意,您不会对 admin() 函数返回的字符执行任何操作。稍后您只需将字符 5 分配给 char choice

关于java - 如何使多个基于文本的 java 菜单工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020958/

相关文章:

Swift:带有 switch 语句的嵌套枚举

Java:类型转换枚举<?>

jquery - 下拉菜单在 IE6 中不起作用

c# - 如何存储 Switch 语句中的 Cases 列表?

html - css 下拉菜单上的间距问题,无法将文本居中并且无法摆脱多余的左侧空间

javascript - 如何根据状态中的链接更改列表项的颜色?

c - 开关盒 - 意外行为

java - 在 Java 中将 double 转换为 String

java - 使用java保留二叉搜索树中根的值

java - SBT scala 猴子补丁库