我正在写一些文字冒险,但我在开始时遇到错误。 我想询问玩家的性别,一切运作良好,但是如果写错了性别的消息则不会显示。
我做错了什么?
if (scan.next().equalsIgnoreCase("Frau")) {
System.out.println("Oh eine Dame des" + sClanname + " Clans");
sGender = scan.next();
} else if (scan.next().equalsIgnoreCase("Mann")) {
System.out.println("Oh ein Herr des" + sClanname + " Clans");
sGender = scan.next();
} else {
System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
}
我也试过
if (scan.next().equalsIgnoreCase("Frau") || scan.next().equalsIgnoreCase("Mann")) {
System.out.println("Oh eine Dame des" + sClanname + " Clans");
sGender = scan.next();
} else {
System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
}
和
if (!scan.next().equalsIgnoreCase("Frau") && !scan.next().equalsIgnoreCase("Mann")) {
System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
}
答案 0 :(得分:6)
您没有在String
和if
语句中对同一else if
进行比较,因为每次调用scan.next()
都会从输入中返回新的String
读数
您应该将String存储在变量中并重复使用它:
String s = scan.next();
if (s.equalsIgnoreCase("Frau")) {
System.out.println("Oh eine Dame des" + sClanname + " Clans");
sGender = scan.next();
} else if (s.equalsIgnoreCase("Mann")) {
答案 1 :(得分:1)
每个scan.next()都试图从输入中扫描下一行。 如果您比较相同的输入,请在变量中保存一次,然后使用。
答案 2 :(得分:0)
比较sGender而不是scan.next
if (scan.next().equalsIgnoreCase("Frau")) {
System.out.println("Oh eine Dame des" + sClanname + " Clans");
sGender = scan.next();
} else if (sGender.equalsIgnoreCase("Mann")) {
System.out.println("Oh ein Herr des" + sClanname + " Clans");
sGender = scan.next();
} else {
System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
}