В этой программе пользователю предлагается ввести количество тестов, которое он хочет получить в среднем, а затем программа попросит его ввести, сколько бы он ни сказал.У меня возникли проблемы с определением, как код делает это.Что заставляет его возвращать столько входных данных, сколько просит пользователь.Спасибо!
Я посмотрел на функцию while, но это, кажется, только в том случае, если пользователь вводит что-то вроде 0 или отрицательного числа (я думаю).
import java.util.Scanner;
public class average {
public static String getLetterGrade(double average) {
if (average < 60) {
return "F";
} else if (average < 70) {
return "D";
} else if (average < 80) {
return "C";
} else if (average < 90){
return "B";
}
else;{
return "A";
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Welcome, please type your first name. ");
String name = scan.nextLine();
System.out.println("Welcome, please type your last name. ");
String last = scan.nextLine();
int n;
System.out.println("How many tests would you like the average of?");
n = scan.nextInt();
while(n<0) {
System.out.println("Invalid input.");
System.out.println("How many tests would you like the average
of?");
n = scan.nextInt();
}
double sum = 0, grade;
System.out.println("Enter " + n + " scores.");
for(int i = 0;i<n;i++) {
grade = scan.nextDouble();
sum += grade;
}
double average = (sum/n);
System.out.println("Okay " + name.charAt(0) + last.charAt(0) + ", your
average score is " + (average));
System.out.println("Your letter grade is a " +
getLetterGrade(average));
}
}
В этой программе нет ошибок, и она выполняет то, что должна делать.