В цикле while нет условия прерывания. Сканер продолжит прослушивание ввода. Цикл завершится только в том случае, если введен не двойной символ.
Вы также фактически не получаете следующий ввод на каждой итерации. Вам нужно вызвать input.nextDouble()
внутри цикла.
Если вы хотите, чтобы он выходил самостоятельно, вам нужно добавить условие прерывания. Например, вы можете остановиться после определенного количества входов, таких как:
int gradeCount = 0;
while(input.hasNextDouble() && gradeCount < 6) {
grades = input.nextDouble();
gradeCount += 1;
// your logic here
}