Я сейчас пишу программу для класса. Цель состоит в том, чтобы пользователь мог ввести целое число и инициализировать массив с указанным размером. После этого программа запрашивает ввод данных, поступающих в каждый из этих слотов массива (оценки, как показано ниже). Мы также должны использовать некоторое время l oop, когда ввод недействителен. Моя проблема в том, что при запросе в первый класс требуется два числовых ввода от l oop до.
import java.util.Scanner;
public class ForWhile {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int arraySize;
System.out.print("Gpa Calculator");
System.out.print("\nEnter total classes: ");
arraySize = scanner.nextInt();
double[] grades = new double[arraySize];
for (int i = 0; i < arraySize; i++) {
System.out.println("Enter grade for class " + (i + 1) + ": ");
grades[i] = scanner.nextDouble();
while (!scanner.hasNextDouble()) {
System.out.println("Percentage grades only please!");
System.out.println("Enter a grade for class " + (i + 1) + ": ");
grades[i] = scanner.nextDouble();
}
}
}
}
Это то, что я сейчас написал, но в консоли я бы ожидал ввода из 2:
GPA Calculator
Enter grade for class 1: 90
Enter grade for class 2: 85
Что должно произойти, чтобы это прогрессировало:
GPA Calculator
Enter a grade for class 1: 90
90
Enter a grade for class 2: 85
Я пытался использовать scanner.hasNextLine (), но не слишком успешно, что я отсутствует? Я также думаю, что мое условие l oop не зацикливается корректно, любой ввод будет очень полезен!