所以我現在正在用JAVA製作一個基於文本的冒險遊戲。我的代碼存在一個小問題,這使得遊戲的遊戲非常煩人。當玩家輸入一個命令,如「北上」,第一次工作正常。但第二次,它不起作用。它不顯示我的默認開關情況,所以它能識別命令。例如,當我輸入相同的命令時,「再次向北」,它就會起作用。所以它不是第一次工作,但只需再輸入一次就可以工作。有沒有辦法讓我這樣做,所以它不需要兩個輸入來工作? 這裏是我的代碼:JAVA,Switch case需要兩個條目才能工作
//// USER INPUT TIME ////
System.out.println(">_");
playerCommand = input.nextLine();
loop: while (loopInt > 0) {
switch (input.nextLine()) {
case "go north":
case "n":
alleywayGoNorth();
break loop;
case "go south":
case "s":
alleywayGoSouth();
break loop;
case "open door":
case "o door":
alleywayOpenDoorLocked();
break loop;
default:
System.out.println("That command is not valid at the moment.");
break;
}
}
////////
您正在閱讀輸入兩次。 'playerCommand = input.nextLine();'讀取第一行。 'switch(input.nextLine())'讀取下一行。我建議你將'playerCommand = input.nextLine();'移動到while循環,然後將開關切換到'switch(playerCommand)' – user3100783
刪除'loop:'標籤將導致while循環繼續執行(假設' loopInt'大於0)。我想這意味着在循環中使用帶有標籤的'break'會導致你跳出整個循環,看起來你不想要。 – mdl
@mdl,這實際上是我想要的。沒有循環:和循環;它將不會再次要求用戶輸入。它會運行我的默認情況。 – user3207994