Java流程控制02:Scanner进阶使用

scanner的基本流程:
package com.wenjian.scanner;

import java.util.Scanner;

public class demo03 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in); //1.键入

        System.out.println("请输入的内容为:");    //2.配上文字描述
	  if判断语句                               //可加if判断语句
        String str =scanner.nextLine();           //3.获取键入的内容,赋值给变量

        System.out.println("输出的内容为:"+str);  //4. 配上文字描述,输出
       else判断语句                              //可加if判断语句结束
        scanner.close();                          //5.关闭
    }
}

hasNext()与hasNextLine()的判断成分:
使用hasNext()与hasNextLine()字符串前一般要判断下是否还有输入的数据:

通过Scanner 类的next方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

使用nextInt()和nextFloat():
package com.wenjian.scanner;

import java.util.Scanner;

public class demo04 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner qwe = new Scanner(System.in);

        //定义变量
        int i = 0;
        float f = 0.0f;

        System.out.println("请输入整数:");

        //如果...那么...
        if (qwe.hasNextInt()) {
            i = qwe.nextInt();
            System.out.println("整数数据:" + i);
        } else {
            System.out.println("输入的不是整数数据!");
        }
        System.out.println("请输入小数:");

        Scanner asd = new Scanner(System.in);

        //如果...那么...
        if (asd.hasNextFloat()) {
            f = asd.nextFloat();
            System.out.println("小数数据" + f);
        } else {
            System.out.println("输入的不是小数");
        }
        qwe.close();
        asd.close();
    }
}

输出:
请输入整数:
10
整数数据:10
请输入小数:
10.1
小数数据10.1

进程已结束,退出代码 0
一个scanner例题:
可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
package com.wenjian.scanner;

import java.util.Scanner;

public class demo05 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
        Scanner qwe = new Scanner(System.in);

        //定义变量,和,sum
        double sum = 0;
        //定义变量,n,计算输入了多少个数字
        int n = 0;

        while (qwe.hasNextDouble()) {
            double x = qwe.nextDouble();
            n = n + 1;
            sum = sum + x;
            System.out.println("你输入了第" + n + "个数据,然后当前结果sum=" + sum);
        }
        System.out.println(n+ "个数的和为"+sum);
        System.out.println(n+"个数的平均值是"+(sum/n));
        qwe.close();
    }
}

输出:
10
你输入了第1个数据,然后当前结果sum=10.0
20
你输入了第2个数据,然后当前结果sum=30.0
30
你输入了第3个数据,然后当前结果sum=60.0
x
3个数的和为60.0
3个数的平均值是20.0

进程已结束,退出代码 0

posted @ 2020-07-13 16:57  nkndlawn  阅读(152)  评论(0)    收藏  举报