Код печатает строки дважды в цикле while?
В этом коде пользователь вводит тестовую отметку, и он должен распечатать оценку и спросить, хочет ли пользователь ввести другую оценку, однако моя проблема в том, что он печатает этот бит дважды, и я не знаю, Зачем?
import java.util.Scanner;
public class ExamGrades {
public static void main(String[] args) {
int mark;
String answer;
Scanner scan = new Scanner(System.in);
System.out.println("Enter student mark: ");
mark = scan.nextInt();
while (mark >= 0) {
if (mark < 40) {
System.out.println("FAILED.");
} else if (40 <= mark && mark <= 49) {
System.out.println("3rd");
} else if (50 <= mark && mark <= 59) {
System.out.println("2/2");
} else if (60 <= mark && mark <= 69) {
System.out.println("2/1");
} else if (mark >= 70 && mark <= 100) {
System.out.println("1st");
} else if (mark > 100) {
System.out.println("Invalid mark");
}
System.out.println("Enter another mark? Yes or No: ");
answer = scan.nextLine();
if (answer.equalsIgnoreCase("yes")) {
System.out.println("Enter student mark: ");
mark = scan.nextInt();
} else if (answer.equalsIgnoreCase("no")) {
mark = -1;
System.out.println("Thank you.");
}
}
scan.close();
}
}
Спасибо за любую помощь, которую вы можете оказать.
1 ответ
Решение
Причина в том, что когда вы вводите метки, вы нажимаете скажем 56
Чтобы избежать этого, сделайте следующее, прежде чем ваш sysout ниже:
System.out.println("Enter another mark? Yes or No: ");
Введите следующую строку:
scan.nextLine();
Так что ваш