此代码是我正在制作的二十一点游戏的片段。无论我输入什么,程序都不会突然出现。
boolean bool = true;
do{
Scanner kb = new Scanner(System.in);
String choice = kb.next();
if(choice == "Hit" || choice == "hit") {
String action = "hit";
bool = false;
} else if(choice == "Stay" || choice == "stay") {
String action = "stay";
bool = false;
} else {
System.out.println("Do not recognize response. Retry.");
}
} while (bool == true);
通常会发生什么: http://puu.sh/87KZk.png
任何帮助将不胜感激。谢谢!
答案 0 :(得分:5)
您正在使用==比较字符串。在Java中,我们将字符串与.equals()
进行比较。
您可以这样做:
boolean bool = true;
do {
Scanner kb = new Scanner(System.in);
String choice = kb.next();
if(choice.equals("Hit") || choice.equals("hit")) {
String action = "hit";
bool = false;
} else if(choice.equals("Stay") || choice.equals("stay")) {
String action = "stay";
bool = false;
} else {
System.out.println("Do not recognize response. Retry.");
}
} while (bool == true);
为了清晰起见,我还格式化了代码的某些部分。
如下面的评论所示,您也可以使用equalsIgnoreCase
来比较字符串,无论其大小写如何。
希望这有帮助!