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不是要抛异常?