嗨,所以我被困在这里,如果有人可以帮助我,请尝试尽我所能。 代码可以正常工作,但是它是错误的。
因此,在该问题所在的示例中,我向下突出显示了(粗体),并用黄色注释了适合我的代码的内容。
我的LinkedHashMap的值: (字符串,字符串)
cards.put("a", "1");
cards.put("b", "2");
cards.put("c", "3");
cards.put("d", "4");`
代码示例:
打印“ a”的定义
input> 1
正确答案
打印“ b”的定义
input> a
错误的答案
打印“ c”的定义
input> 2
答案错误。正确的是“ 3”, 您刚刚写了“ c”的定义
//由于输入为2,且此处为键b的值,因此此处应为“ b” 在地图上。
打印 **“ c”的定义
//在这里也应该是“ b”,那么它就会出错,与正确的匹配 键
input> 3
正确答案
打印“ d”的定义
input> 1
答案错误。正确的是“ 4”,您刚刚写了“ d”的定义 打印“ d”的定义
,并在这里打印“ d”而不是“ a” 而且我尝试了很多不知道如何解决此问题的方法。
input> 1
正确答案
这是代码源:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
LinkedHashMap<String, String> cards = new LinkedHashMap<String, String>();
cards.put("a", "1");
cards.put("b", "2");
cards.put("c", "3");
cards.put("d", "4");
for (Map.Entry<String, String> entry : cards.entrySet()) {
String v = entry.getValue();
String k = entry.getKey();
System.out.println("Print the definition of " + "\"" + k + "\"");
String answer = in.nextLine();
if (answer.equals(v)) {
System.out.println("Correct answer");
} else if (!answer.equals(v) && !cards.containsValue(answer)) {
System.out.println("Wrong answer");
}
else if (!answer.equals(v) && cards.containsValue(answer)) {
System.out.println("Wrong answer. The correct one is " + "\"" + v + "\""
+ ", you've just written the definition of " + "\"" + k + "\"");
System.out.println("Print the definition of " + "\"" + k + "\"");
String answer2 = in.nextLine();
if (!answer2.equals(v) && !cards.containsValue(answer2)) {
System.out.println("Wrong answer. The correct one is " + "\"" + v + "\"");
} else {
System.out.println("Correct answer");
}
}
}
}
答案 0 :(得分:2)
System.out.println("Wrong answer. The correct one is " + "\"" + v + "\""
+ ", you've just written the definition of " + "\"" + k + "\"");
而不是k
,您将获得输入值的实际键并打印出来。