ユーザーにゲームをプレイしたいかどうか尋ねました..
System.out.println("Would you like to play");
read in yes or no value
if yes (display text)
else (display other text)
プログラムで以前にスキャナーを使用しましたが、もう一度使用するために必要です。新しい変数で別の新しいものを宣言する必要がありますか?
ユーザーにゲームをプレイしたいかどうか尋ねました..
System.out.println("Would you like to play");
read in yes or no value
if yes (display text)
else (display other text)
プログラムで以前にスキャナーを使用しましたが、もう一度使用するために必要です。新しい変数で別の新しいものを宣言する必要がありますか?
次の方法を使用します。
scanner.nextBoolean()
したがって、次のようになります。
System.out.println("Would you like to play?");
Scanner scanner = new Scanner(System.in);
if(scanner.nextBoolean()==true) {
System.out.println("This will be fun");
} else {
System.out.println("Maybe next time");
}
編集
System.out.println("Would you like to play?");
Scanner scanner = new Scanner(System.in);
String val = scanner.next();
if(val.equalsIgnoreCase("y")||val.equalsIgnoreCase("yes")) {
System.out.println("This will be fun");
} else if(val.equalsIgnoreCase("n")||val.equalsIgnoreCase("no")) {
System.out.println("Maybe next time");
} else {
System.out.println("Invalid character");
次のようなことができます:
String yesOrNo = System.in.readLine();
String textToDisplay = (yesOrNo.equals("Yes")) ? "text to display when yesOrNo equals yes" : "text to display when YesOrNo equals no";
簡単にするために、ここにあなたが遊ぶためのものがあります:
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
System.out.println("Would you like to play: 'y' or 'yes' to accept; 'n' or 'no' to reject; 'q' to quit:");
Scanner scanner = new Scanner(System.in);
String token = "";
while(scanner.hasNextLine())
{
token = scanner.nextLine().trim();
if(token.equalsIgnoreCase("q")) System.exit(0);
if(token.equalsIgnoreCase("y")||token.equalsIgnoreCase("yes"))
{
System.out.println("Thanks for your interest!");
System.exit(0);
}
else if (token.equalsIgnoreCase("n")||token.equalsIgnoreCase("no"))
{
System.out.println("That's a pity!");
System.exit(0);
}
else
{
System.out.println("Oops, not a valid input!");
}
}
}
}
私はこの質問に出くわしました.Chad Mの答えは正しいですが、上記のコメント者のように、いくつかのバグがあります. したがって、バグのない私の実装は次のとおりです(ユーザー入力を文字列変数に保存するだけの問題でした):
Scanner scanner = new Scanner(System.in);
String userInput = scanner.next();
if(userInput.equalsIgnoreCase("y") || userInput.equalsIgnoreCase("yes")) {
// y or yes
} else {
// other character
}
Dragon66 の推奨事項に基づいて、定義済みの入力とユーザー入力の文字列比較を実装しています。
System.out.println("Would you like to play? Or press Q to exit"):
Scanner scanner = new Scanner(System.in);
String affirmative = "yes";
String affirmative2 = "y";
String negative = "no";
String negative2 = "n";
String quit = "q";
if(scanner.next().equalsIgnoreCase(affirmative)||scanner.next().equalsIgnoreCase(affirmative2)) {
System.out.println("This will be fun");
} else if(scanner.next().equalsIgnoreCase(negative)||scanner.next().equalsIgnoreCase(negative2)) {
System.out.println("Maybe next time");
} else if(scanner.next().equalsIgnoreCase(quit)){
System.out.println("Good bye");
System.exit();
} else {
System.out.println("Invalid character");
}