1.判断输入的数据类型是否正确
用if else语句做选择,用hasNextInt()、hasNextFloat()方法判断,用nextInt()、nextFloat()方法接收数据。
package com.wang.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//Scanner是类,scanner是变量名
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数数据:");
//
if (scanner.hasNextInt()){ //如果输入的为整数
int i = scanner.nextInt(); //就接收输入的数据存放在i变量中
System.out.println("输入的整数为:"+i);
}
else { //输入的数据不是小数时
System.out.println("输入的不是整数!");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()){ //如果输入的为小数
float f = scanner.nextFloat(); //就接收输入的数据存放在f变量中
System.out.println("输入的小数为:"+f);
}
else { //输入的数据不是小数时
System.out.println("输入的不是小数!");
}
scanner.close();
}
}
结果:
扩展:
按住Ctrl键,鼠标停留在Scanner类上会产生链接,查看Scanner类的具体方法(有非常多)。也可以通过点击【Structure】,查看方法目录,通过点击具体的方法,即可跳转到方法的详细介绍。
2.对输入的数字求其总和与平均数
package com.wang.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
/*
我们可以输入多个数字,并求其总和与平均数,
每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
*/
Scanner scanner = new Scanner(System.in);
//请输入数据
System.out.println("请输入数字:");
//先定义变量并初始化,求和
double sum = 0;
//先定义变量并初始化,计算输入了多少个数字
int m =0;
//通过while循环判断是否还有数值输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble(); //nextDouble()接收我的输入数据,并存放在变量x里面
m++; //自增算数运算符 相当于 m=m+1
sum += x; //+=为扩展赋值运算符 相当于 sum=sum+x
}
System.out.println(m + "个数的和为:"+ sum);
System.out.println(m + "个数的平均数为:" + sum/m);
scanner.close();
}
}
结果:
plus版本的求和与求平均值代码:
package com.wang.scanner;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
//new一个对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字:");
int m =0; //用于计数
double sum = 0; // 用于求和
while(scanner.hasNextDouble()){
double x = scanner.nextDouble(); // 用x变量接收输入的数据
m++;
sum += x;
System.out.println("第"+m+"个数为"+x+",目前的总和为"+sum+",平均值为"+sum/m);
}
//OI流 用完需要关闭
scanner.close();
}
}
结果: