我有一个程序要写入文本文件,只需使用扫描仪的基本输入。我有它所以它通过问题然后是是否添加另一个输入。当用户(或作为我的测试人员)输入y再次执行时,它会同时询问2个顶级问题,因此它无法获得第一个问题的输入,这是为什么会发生这种情况的原因?这是一个例子 你想创建另一个条目吗? Y / N ÿ 什么是受助人的课程代码? 作业的名称是什么?
do{
System.out.println("What is the course code for the assignemnt?")
course = s.nextLine();
System.out.println("What is the name of the assignment?");
gName = s.nextLine();
System.out.println("What did you get on the assignment?");
yourGrade = s.nextLine();
System.out.println("What was the assignment out of?");
gMax = s.nextLine();
System.out.println("What was the assignment weighted?");
gWeight = s.nextLine();
pw.printf("%s|%s|%s|%s|%s",course, gName, yourGrade, gMax, gWeight);
pw.println("");
System.out.println("Would you like to create another entry? Y/N");
YN = s.next().charAt(0);
}
while(YN == 'Y' || YN == 'y');
pw.close();
}
答案 0 :(得分:1)
YN = s.next().charAt(0);
无法使用下一个nextLine
(即下一次迭代)消耗的行尾字符,所以你需要另一个nextLine
1}}之后。或者使用nextLine
阅读一行并使用charAt(0)
就这样:YN = s.nextLine().charAt(0);
答案 1 :(得分:1)
使用YN = s.nextLine().charAt(0);
代替YN = s.next().charAt(0);
答案 2 :(得分:1)
将YN = s.next().charAt(0);
更改为YN = s.nextLine().charAt(0);
我在这里改变了它,它对我有用,