したがって、通常、ユーザー入力を検出するには、int および double 変数型を使用します。
例:
Scanner in = new Scanner(System.in);
int selection;
System.out.println("Welcome to RPG! (prototype name)\nIn this game, you do stuff.\nChoose a class:\n1. Soldier\n2. Knight\n3. Paladin\n4. Heavy");
selection = in.nextInt();
if(selection == 1){
System.out.print("you are a soldier");
}
else{
System.out.print(selection);
}
}
通常、この手法はうまく機能しますが、ユーザーが int 変数に文字を入力すると、整数は文字を格納できないため、ゲームがクラッシュすることに気付きました。(そうですか?)そこで、次のように、代わりに String 変数を使用してみました。
Scanner in = new Scanner(System.in);
String selection;
System.out.println("Welcome to RPG! (prototype name)\nIn this game, you do stuff.\nChoose a class:\n1. Soldier\n2. Knight\n3. Paladin\n4. Heavy");
selection = in.next();
if(selection == "1"){
System.out.print("you are a soldier");
}
else{
System.out.print(selection);
}
}
これは最初は機能しているように見えましたが、ご覧のとおり、変数「選択」が1に等しい場合、「あなたは兵士です」と出力するように設定しましたが、これは機能せず、代わりに出力しました「選択」変数の値 (1) を取り出します。何か間違ったことをしましたか、それとも別のタイプの変数を使用する必要がありますか?