java - 如何让我的代码继续编码直到输入 "0"

标签 java

您好,我遇到了麻烦。

让键 8、4、2 和 6 分别为北、西、南和东。每当用户选择这些选项之一时,输出 You moved direction where direction is the appropriate direction。如果用户输入零,这也是一个菜单选项,则退出。

    public static void main(String[] args)
{

    Scanner keyboard = new Scanner(System.in);

    System.out.println("Which direction would you like to move?");
    System.out.println("[8] North");
    System.out.println("[4] West");
    System.out.println("[2] South");
    System.out.println("[6] East");
    System.out.println("[0] Exit");
    int input = keyboard.nextInt();



    while (input == 8)
    {
        System.out.println("You moved north.");
        System.out.println("Which direction would you like to move?");
        System.out.println("[8] North");
        System.out.println("[4] West");
        System.out.println("[2] South");
        System.out.println("[6] East");
        System.out.println("[0] Exit");
        input = keyboard.nextInt();
    }


    while (input == 4)
    {
        System.out.println("You moved west.");
        System.out.println("Which direction would you like to move?");
        System.out.println("[8] North");
        System.out.println("[4] West");
        System.out.println("[2] South");
        System.out.println("[6] East");
        System.out.println("[0] Exit");
        input = keyboard.nextInt();
    }
    while (input == 2)
    {
        System.out.println("You moved south.");
        System.out.println("Which direction would you like to move?");
        System.out.println("[8] North");
        System.out.println("[4] West");
        System.out.println("[2] South");
        System.out.println("[6] East");
        System.out.println("[0] Exit");

        input = keyboard.nextInt();
    }

    while  (input == 6)
    {
        System.out.println("You moved east.");
        System.out.println("Which direction would you like to move?");
        System.out.println("[8] North");
        System.out.println("[4] West");
        System.out.println("[2] South");
        System.out.println("[6] East");
        System.out.println("[0] Exit");

        input = keyboard.nextInt();
    }

    }
}

最佳答案

当您读取 8 时,您的代码会卡在 while (input==8) 循环中。 然后,一旦 6 到达,它就会退出该循环并进入 while (input==6) 循环。此时除 6 以外的任何数字都将退出该循环并终止程序。

您可能想要的是将大量小循环替换为一个不断询问用户输入并打印其选择结果的循环。像这样的东西:

do{
   //display menu
   //read user's choice
   //react to user's choice
}while(input != 0)

关于java - 如何让我的代码继续编码直到输入 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208021/

相关文章:

java.io.NotSerializedException : com. sun.faces.context.FacesContextImpl weblogic

java - UncaughtExceptionHandler 中抛出的错误是否被吞没?

Java Webservice 在 Apache Tomcat 上命中代理而不是目标

java - 最正确地利用了 SOLID 原则的 OSS .net/java 项目有哪些?

Java Swing 性能 OS X 10.6 与 Windows 7

Java 直方图均衡化 - 无法从图像栅格中获取像素

java - Spring中的非静态资源

java - 动态地将/xxx/yyy/zzz映射到类XxxYyyZzz.java的servlet或过滤器

java - 在 Struts2 中访问多键映射

java - 内部常量是否符合 GC 条件?