因此,通常为了检测用户输入,我使用 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)。我做错了什么还是应该使用不同类型的变量?