*** Обновление моего поста, чтобы показать весь мой код, надеюсь, это даст больше контекста.
Когда я запускаю программу, она пропускает мой первый оператор «if» и выдает ошибку. ***
Я получаю сообщение об ошибке Exception in thread "main" java.lang.NumberFormatException: For input string: ""
Я пытаюсь преобразовать строковую переменную в int в первом операторе else цикла while ... Ошибка возникает в int examScore = Integer.parseInt(userInput).
import java.util.Scanner;//imports scanner
public class ExamScoresCalculator{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);//creates new scanner object
//prompts user for lowest possible exam score
System.out.println("Enter the lowest possible value for the exam: ");
int lowRange = scan.nextInt();
//prompts user for highest possible exam score
System.out.println("Enter the highest possible value for the exam: ");
int highRange = scan.nextInt();
boolean flag = true; //while loop flag
double lowestExamScore = highRange; // holds lowest score
double highestExamScore = lowRange; //holds highest score
double totalPoints = 0; //holds sum of all scores entered
int totalExams = 0; //holds the total number of exams entered by the user
while (flag == true){
System.out.println("Enter an exam score between " + lowRange + " and " + highRange + " or type exit. "); //asks user for an exam score within correct range
String userInput = scan.nextLine();
if ((userInput.equals("exit")) || (userInput.equals("Exit")) || (userInput.equals("EXIT"))){ //checks if user enters "exit"
flag = false; //ends while loop
}else{
int examScore = Integer.parseInt(userInput); //converts user input into integer
if (examScore >= lowRange && examScore <= highRange){ //checks if user entered a correct test score
totalExams += 1; //increments totalExams by 1
totalPoints += examScore; //adds examScore total to totalPoints
if (examScore < lowestExamScore){ //checks if the exam score entered is the lowest
lowestExamScore = examScore; //updates lowestExamScore variable
}
else if (examScore > highestExamScore){ //checks if exam score entered is the highest
highestExamScore = examScore; //updates highestExamScore variable
}
}else{
System.out.println("Please enter a correct score."); //asks user to enter a correct score
}
}
}//closing while loop
//prints the total number of exams, lowest score, highest score, and average score to screen
System.out.println("Total number of exams: " + totalExams);
System.out.println("Lowest exam score: " + lowestExamScore);
System.out.println("Highest exam score: " + highestExamScore);
System.out.println("Average exam score: " + (totalPoints / totalExams));
}//closing main
}//closing class