JAVA以If语句终止的代码

JAVA以If语句终止的代码,java,Java,我正在做一个文本冒险游戏,程序终止了,我不知道为什么有人能帮我?对不起,我可能犯了一个愚蠢的错误,我是新手。 谢谢: 你的问题是,你只得到一次输入,然后期望它改变 例如,检查用户是否输入了关于blue door的内容,然后检查同一个userInput值现在是否包含手电筒。这永远不会是真的 您需要循环输入,并使分支逻辑保存状态,并根据当前位置而变化。有很多方法可以做到这一点,但您可能需要存储位置、库存项目列表以及您可能依赖的任何其他状态。例如,如果用户进入红门寻找手电筒,他们将找不到。如果他们在找

我正在做一个文本冒险游戏,程序终止了,我不知道为什么有人能帮我?对不起,我可能犯了一个愚蠢的错误,我是新手。 谢谢:


你的问题是,你只得到一次输入,然后期望它改变

例如,检查用户是否输入了关于blue door的内容,然后检查同一个userInput值现在是否包含手电筒。这永远不会是真的

您需要循环输入,并使分支逻辑保存状态,并根据当前位置而变化。有很多方法可以做到这一点,但您可能需要存储位置、库存项目列表以及您可能依赖的任何其他状态。例如,如果用户进入红门寻找手电筒,他们将找不到。如果他们在找到手电筒之前进入蓝色的门寻找骨头,他们什么也找不到。这样做的逻辑超出了问题的范围,但下面是一个简单的示例

System.out.println("You are in a room");
myScanner = new Scanner(System.in);
while(myScanner.hasNext()) {
    String userInput = myScanner.nextLine();    
    processInput(userInput);
}

...

void processInput(String input) {
    // process input, while maintaining state of where the user currently is
}

您只需要提示用户输入一次,行字符串为userInput=myScanner.nextLine。您需要在循环中反复提示用户。你是否熟悉java编程,如果不熟悉,那么在尝试编写游戏之前,你可能希望更加熟悉java和通用算法等编程;在某个地方,这样您就可以在任何地方使用equals而不是equalsIgnoreCase。
System.out.println("You are in a room");
myScanner = new Scanner(System.in);
while(myScanner.hasNext()) {
    String userInput = myScanner.nextLine();    
    processInput(userInput);
}

...

void processInput(String input) {
    // process input, while maintaining state of where the user currently is
}