java - 在 Java 中使用 do-while 循环检查用户的输入

标签 java input java.util.scanner do-while

我正在尝试使用 java 创建一个简短的基于文本的冒险游戏。

我是一名初级程序员,所以我的方法可能不是最有效的,但我仅使用迄今为止从学校类(class)中学到的知识。

我的问题是在询问用户输入后发生的。

import java.util.Scanner;
public class House
{
    public static void main(String[]args)
    {

        System.out.println("You have just moved into your new house.");
        System.out.println("What do you do next?");
        Scanner scan = new Scanner(System.in);
        String input = scan.next();

        do
        {
            if(input.equals("enter") || input.equals("Enter"))
            {
                System.out.println("You have entered the house.");
            }

            else if(input.equals("leave") || input.equals("Leave"))
            {
                System.out.println("You left and never came back.");
                System.out.println("The End");
                System.exit(0);
            }

            else
            {
                System.out.println("I don't know how to "+input);
                System.out.println("Try again");
                System.out.println("What do you do next?");
                input = scan.nextLine();
            }
        }
        while(!input.equals("enter") || !input.equals("Enter") || !input.equals("leave") || !input.equals("Leave"));

    }
}

如果用户输入“leave”、“Leave”或未知命令,程序将按预期工作。当用户输入“enter”或“Enter”时出现问题

我的 do-while 循环中的条件应该使程序在输入等于“enter”或“Enter”时退出循环,但程序却陷入了无限循环。

程序将简单地重复“您已进入房屋。”一遍又一遍。

为什么会出现这个问题?我不知道我做错了什么。

谢谢!

最佳答案

将其更改为

...
String input;
do
{
    input = scan.next();
    if(input.equals("enter") || input.equals("Enter"))
    {
        System.out.println("You have entered the house.");
    }
...

关于java - 在 Java 中使用 do-while 循环检查用户的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364176/

相关文章:

java - ParameterizedType 和创建通用 dao

c - 将华氏度转换为摄氏度时不理解输出

javascript - 验证输入值

java - 当你编写代码时,java.util会在eclipse中自动调用吗? "get"它导入的类在哪里?

Java方法无法获取文件

java - 什么对应于 Jersey 2 的 HK2 中的 asEagerSingleton?

java - 如何在服务类和 util 类之间拆分应用程序功能?

java - android中的sqlite3_open错误

java - 使用 getText 获取整数

java - 扫描仪阵列 (n x n)