我正在尝试使用 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/