package acolyte.scanner;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if(s.hasNextInt()) {
i = s.nextInt();
System.out.println("整数数据:"+i);
}else {
System.out.println("输入的不是整数数据!");
}
System.out.println("请输入小数:");
if(s.hasNextFloat()) {
f = s.nextFloat();
System.out.println("小数数据:"+f);
}else {
System.out.println("输入的不是小数数据!");
}
s.close();
}
}
====效果如下====
请输入整数:
114 //如果输入正确的数据:
整数数据:114
请输入小数:
0.514
小数数据:0.514
====另一次演示====
请输入整数:
114.514 //如果输入错误的数据:
输入的不是整数数据!//这里不会停顿,直接把114.514代入下一个判断了。
请输入小数:
小数数据:114.514//这只是个示例,代码的逻辑并不完美。
- 输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入,并输出结果。
package acolyte.scanner;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
double sum = 0;//输入数字的总和
int m = 0;//输入了几个数字
System.out.println("请输入数据:");
//通过循环判断是否还有输入,并在里面对每一次进行求和与统计。
while (s.hasNextDouble()){
double x = s.nextDouble();
m = m + 1;
sum = sum + x;
System.out.println("你输入了第"+m+"个数据。当前和为"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均数为:"+(sum/m));
s.close();
}
}
====效果如下====
请输入数据:
10 //输入第一个double类型数字
你输入了第1个数据。当前和为10.0
20 //输入第二个double类型数字
你输入了第2个数据。当前和为30.0
啦啦啦 //输入非double类型
2个数的和为:30.0
2个数的平均数为:15.0