Не выходит из цикла в intellij IDEA при считывании клавиатуры через сканер

Надо считать из строки все вещественные через пробел числа и просуммировать их, вывести с 6 знаками после запятой, но это не столь важно, так как задача вроде как решена.

import java.io.*;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);//"a 1 b 2 c 3,4"
        double sum = 0;
        while(scanner.hasNext()){
            if(scanner.hasNextDouble())
                sum += scanner.nextDouble();
            else
                scanner.next();
        }
        System.out.format("%.6f",sum);// 6.4
    }
}

Проблема в том, что из цикла while после того как считается вся строка, и условие scanner.hasNext() не выполнится - программа виснет и не выходит из цикла. При дебаге понятней не становится - просто останавливается, но не завершается программа. В разных онлайн компиляторах все работает как и должно - а IDEA нет, прошу объяснений почему


Ответы (1 шт):

Автор решения: Alexey R.

В спецификации написано:

This method may block while waiting for input to scan

Сканер не знает будете ли Вы еще что-то вводить или нет. Поэтому он просто ждет данные из инпутстрима.

В Вашем случае надо либо завершать ввод некой управляющей последовательностью и прекращать исполнение при ее достижении, либо читать данные из файла, а не из консоли, либо завершать ввод Ctrl+D в Linux или Ctrl+Z в Windows.

→ Ссылка