私はJavaプログラムを開発中です。今はすべてが完全に機能しており、すべての機能がそこにあります。しかし、私が立ち往生している部分は、ループからdo-while
ループでプログラムを終了する方法です。私は構文が間違っているはずです。終了プログラムdo-whileループin java
基本的には、ユーザの入力に反応するスイッチdone
を設定します。今、それは働いていて、プログラムをループしますが、私が「いいえ」と答えると終了しません。ここで
は、これが起こっているコードの一部です:
public void main() {
String userInput;
boolean done = true;
Scanner keyboard = new Scanner(System.in);
do {
System.out.println("Welcome to Hangman!");
System.out.println("Do you want to play?");
userInput = keyboard.next();
if (userInput.equals("Yes") || userInput.equals("yes") || userInput.equals("y") || userInput.equals("Y")) {
done = false;
} else if (userInput.equals("n") || userInput.equals("no") || userInput.equals("NO") || userInput.equals("No")) {
done = true;
}
while (!done) {
System.out.println(getDisguisedWord());
System.out.println("Guess a letter: ");
String guess = keyboard.next();
makeGuess(guess);
if (gameOver()) {
String ui;
System.out.println("Do you want to play again?");
ui = keyboard.next();
if (ui.equals("Yes") || ui.equals("yes") || ui.equals("y") || ui.equals("Y")) {
done = false;
} else {
done = true;
}
}
}
} while(done);
}
私はこれよりよく処理できる方法上の任意のヒント?
Javaで '=='を使用して文字列を比較することはできません。.equals()メソッドを使用する必要があります。 –
'while(done == false)'を 'while(done)'と置き換える必要はありません –
[Javaの文字列を比較するにはどうすればいいですか?](http://stackoverflow.com/questions)/513832/how-do-i-compare-strings-in-java) – John3136