jave标准输入问题Scanner.这个程序运行情况不对

package 标准IO;

import java.util.Scanner;

public class IO {

public static void main(String[] args) {
    // TODO Auto-generated method stub
/*  char c='a';
    float f=123.3212f;
    double d=123456.2134234;
    long x=5678;
    System.out.printf("%c\n%.3f%n%f,%12d\n%d%n", c,f,d,x,x=x+2);*/
    Scanner reader=new Scanner(System.in);
    double sum=0;
    int m=0;
    while(reader.hasNextFloat()){
        float x1=reader.nextFloat();
        System.out.println("浮点型元素"+x1+"已经录入");
    }

    while(reader.hasNextDouble()){
        double x1=reader.nextDouble();
        m=m+1;
        sum=sum+x1;

    }

    System.out.printf("%d个数的和为%f%n", m,sum);
    System.out.println(m+"个数的平均数是:"+sum/m);

    while(reader.hasNextLine()){
        String string=reader.nextLine();
        System.out.println(string+"\n");
    }
    reader.close();

}

}

预期是:先输入数据,如果是float打印,否则,终止,进入第二个while,在输入数据,如果是double,相加,否则跳出,最终打印

如果你输入1.123,那么既可以当作浮点数也可以当作double
看你怎么输入的。

hasNextFloat和hasNextDouble在控制台输入比较难区别吧。建议用int和double

输入的不是float不是要抛异常?