bug在do-while循环中?

jw5wzhpr  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(288)

这个问题在这里已经有答案了

扫描仪在使用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));
     });

 }
q35jwt9p

q35jwt9p1#

使用answer=in.next()而不是answer=in.nextline()。
next()=从扫描器中查找并返回下一个完整的标记。完整的标记前面和后面都是与分隔符模式匹配的输入。
nextline()=使扫描器超过当前行并返回跳过的输入。

相关问题