秦疆的Java课程笔记:34 Scanner进阶使用

发布时间 2023-11-20 15:58:24作者: Acolyte_9527
  • 用Scanner输出一些数字。
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   //输入第一个数字
你输入了第1个数据。当前和为10.0
20   //输入第二个数字
你输入了第2个数据。当前和为30.0
啦啦啦   //输入非数字
2个数的和为:30.0
2个数的平均数为:15.0
  • 这是一个预习循环语句的示例。