我有一个程序可以使用扫描仪的基本输入来写入文本文件。我有它,所以它经历了所有问题,然后是“否”以添加另一个输入。当用户(或测试者是我)再次输入y时,它会同时问两个最重要的问题,因此它不会得到第一个问题的输入,这是为什么呢?这是一个例子
    您要创建另一个条目吗?是/否
    ÿ
    分配的课程代码是什么?
    作业的名称是什么?

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();
}

最佳答案

YN = s.next().charAt(0);不会包含行尾字符,该字符将被下一个nextLine(即在下一次迭代中)占用,因此您需要在其后添加另一个nextLine。或使用nextLine读一行,并在其上使用charAt(0),如下所示:YN = s.nextLine().charAt(0);

10-05 22:45
查看更多