java - 如何通过 switch 提供在线商店中的产品列表?如何使用退出到主菜单? (或其他方式)

标签 java android switch-statement

java 。有一个在线商店、产品类别、构造函数等。(我有我需要的一切)还有一系列产品。 switch语句提供了一个选择,用户需要在控制台上选择产品的数量。我希望用户能够选择多种产品(不仅是一种产品),所以我添加了扫描仪(我希望扫描仪没有什么不好)我有一种将用户定向到主菜单的方法,在此代码中称为第一个方法(); 通过 switch 语句转换到主菜单的问题。当我按 1、3 等时 - 显示产品,但当我按 6 时,firstMethod(调用该在线商店主菜单的方法)确实有效,但不是“及时”。当我按下 1 时,第 1 个案例被执行,程序正在等待我输入下一个数字。我按 6(转到主菜单),由于某种原因,程序显示案例 2。然后我按 6,控制台显示案例 3,依此类推。再两次,控制台显示主菜单,这正是我想要在按下数字 6 的那一刻显示的内容。 请告诉我 - 那有什么问题?如何使用此运算符进入主菜单(调用方法),还是使用另一个运算符更好?请写出来。

所以我希望 firstMethod 在用户按下数字 6 时起作用。我可以通过交换机执行此操作还是需要其他运算符(operator)?请帮助我将非常感激。

public static void switch1() {


    Product[] products = {
            new Fridge(),
            new Fridge(),
            new Fridge(),

... ... ...

    };

    Scanner scan = new Scanner(System.in);
    System.out.println("1 - " + products[0]);
    System.out.println("2 - " + products[1]);
    System.out.println("3 - " + products[2]);
    System.out.println("4 - " + products[3]);
    System.out.println("5 - " + products[4]);
    System.out.println("6 - Go to main menu");
    System.out.println("Which one do u want to buy?");

int i = Scanner.nextInt();

            switch (i) {

                case 1:

                    System.out.println(products[0]);

                   Scanner.nextInt();

                case 2:

                    System.out.println(products[1]);
                   Scanner.nextInt();

                case 3:
                    System.out.println(products[2]);
                   Scanner.nextInt();

                case 4:

                    System.out.println(products[3]);
                  Scanner.nextInt();
                case 5:
                    System.out.println(products[4]);
                  Scanner.nextInt();
                case 6:
                        firstMethod();
            }

最佳答案

似乎唯一可见的问题是每个 case block 的末尾都没有 break; 语句。

例如:

switch (i) {
    case 1:
        System.out.println(products[0]);
        Scanner.nextInt();
        break;
    ...

此外,仅调用 Scanner.nextInt(); 不会执行任何操作,除非您使用调用返回的值。

您还说过您希望用户能够选择多个产品,因此为了做到这一点,您可以将 switch 置于一个循环中,例如 while 循环,让它循环直到满足停止它的条件。

编辑:以下代码显示了您的代码结构的一个小示例:

boolean loop = true;
while (loop) {
    int i = scan.nextInt();
    switch (i) {
        case 1:
            System.out.println(product[0]);
            break;
        //... cases 2-5 are similar to case 1
        case 6:
            firstMethod();
            loop = false;
            break;
    }
}

关于java - 如何通过 switch 提供在线商店中的产品列表?如何使用退出到主菜单? (或其他方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54046490/

相关文章:

java - 是否可以合并 java\jre\security\lib\cacerts 文件

java - 在 Java 中重载私有(private)方法

java - 使用类名动态命名索引

android - Gitignore misc.xml 和 *.iml 与 Android Studio 0.8.9

java - 开关不执行

java - 使用 java 创建我们自己的 A2DP 配置文件

android - Firebase 实时数据库和 Kotlin 协程

android - 如何以编程方式更改主题颜色 : style, 属性 android?

swift - 捕获多个错误类型?

java - Java : ERROR variable scopes in if statements