这个问题在这里已经有答案了:
扫描仪在使用next()或nextfoo()后跳过nextline()(21个答案)
两年前关门了。
我试着调试我的代码已经很长时间了,但是仍然不知道哪里出错了,你能帮我吗?程序将用户输入添加到Map中,直到用户对问题“是否要添加更多学生?”回答“否”,但是无论用户输入“是”或“否”,程序都将停止运行。do/while循环可能有问题,我不确定
//there is swith statement above and HashMap<String, ArrayList> students = new HashMap()
case 2:
ArrayList<Integer> scores = new ArrayList<>();
String name;
String answer;
do {
System.out.print("Please enter student's name: ");
name = in.nextLine();
in.nextLine();
System.out.print("Please enter " + name + "'s scores: ");
scores.add(in.nextInt());
System.out.println("Do you want to add more students yes/no?");
answer = in.nextLine();
in.nextLine();
} while (answer.equals("no"));
students.put(name, scores); //adding names and scores into HashMap<String, ArrayList> students = new HashMap()
if (answer.equals("no")) {
System.out.println("Student Quiz Scores");
keys.forEach((i) -> {
System.out.println(i + "'s quiz scores: " + students.get(i));
});
}
1条答案
按热度按时间q35jwt9p1#
使用answer=in.next()而不是answer=in.nextline()。
next()=从扫描器中查找并返回下一个完整的标记。完整的标记前面和后面都是与分隔符模式匹配的输入。
nextline()=使扫描器超过当前行并返回跳过的输入。