Java流程控制1

Java流程控制1

Scanner对象

  • 在之前的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供偶了一个工具类,我们可以获取用户的输入。 java.util.Scanner 是Java5的新特性,我们可以通过 Scanner 类获取用户的输入。

  • 基本语法

Scanner s = new Scanner(System.in)
  • 通过 Scanner 类的 next()nextline() 方法获取输入的字符串,在读取前我们一般 使用 hasNext()hasNextLine() 判断是否还有输入的数据。

代码实例 next() :

import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接受键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方法接受:");
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //接受用户的输入
            String str = scanner.next();
            System.out.println("输出的内容:"+str);
        }
        //凡是属于IO流的类如果不关闭就会一直占用资源,养成用完就关的好习惯(* ̄︶ ̄)
        scanner.close();
    }
}

输出结果:

使用next方法接受:
( ̄▽ ̄)/Hello World!
输出的内容:( ̄▽ ̄)/Hello	//无 World

注:next()

  • 一定要读取到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  • next() 不能得到带有空格的字符串。

代码实例 nextLine() :

import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        //从键盘接受数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接受:");
        //判断是否还有输入
        if (scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出的结果为:"+str);
        }
         //凡是属于IO流的类如果不关闭就会一直占用资源,养成用完就关的好习惯(* ̄︶ ̄)
        scanner.close();
    }
}

输出结果:

使用nextLine方式接受:
(* ̄︶ ̄)Hello World!
输出的结果为:(* ̄︶ ̄)Hello World!

注:nextLine()

  • 以Enter为结束符,也就是说 nextLine() 方法返回的是输入回车之前所有字符
  • 可以获得空白。

直接使用 Scanner 代码实例:

import java.util.Scanner;
public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        String str = scanner.nextLine();
        System.out.println("输入的内容为:"+str);
        //凡是属于IO流的类如果不关闭就会一直占用资源,养成用完就关的好习惯(* ̄︶ ̄)说3遍 (*´ノ皿`) 
        scanner.close();
    }
}

Scanner 进阶用法

检测输入变量类型

代码实例:

import java.util.Scanner;
public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        float f = 0.0f;
        System.out.println("请输入整数");
        //如果....那么
        if (scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("整数数据 "+i);
        }else {
            System.out.println("输入的不是整数!");
        }
        scanner.close();
    }
}

Scanner 的简单代码实现

import java.util.Scanner;

public class demo05 {
    public static void main(String[] args) {
        //输入多个数,并求其总和与平均数,没输入一个数就用回车确认,通过非数字来结束输入并输出执行结果:
        Scanner scanner = new Scanner(System.in);
        //和
        double sum = 0;
        //计算输入了多少个数字
        int count = 0;
        System.out.println("请输入数字:");
        //通过循环判断是否还有数字输入,并在里面对每一次进行求和与统计
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            count++;
            sum += x;
        }
        System.out.println(count+"个数的和为:"+sum);
        System.out.println(count+"个数的平均值为"+(sum/count));
        scanner.close();
    }
}
posted @ 2021-03-25 22:36  seveN1foR  阅读(25)  评论(0编辑  收藏  举报