Java学习第五天 java流程控制01 Scanner

Scanner是Java语言提供的一个工具类,我们可以通过Scanner类来获取用户的输入。

基本语法:

Scanner s =new Scanner(System.in);

且有两种方式来获取数据:next(),nextLine()。它们分别通过hasnext()和hasnextLine()来判断键盘是否输入。

使用next()获取数据:

package scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
//     创建一个扫描器对象,用于接收键盘数据
        Scanner sc = new Scanner(System.in);
        System.out.println("使用next()进行接收:");
//        判断用户有没有输入字符串
        if(sc.hasNext()) {
            String str = sc.next();
            System.out.println("输出结果为:" + str);
        }

//        凡是属于IO流的类如果不关闭会一直占用资源,养成好习惯用完就关掉
        sc.close();
    }
}

使用nextLine():

package scanner;

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 sc = scanner.nextLine();
            System.out.println("输出结果为:"+sc);
        }
        scanner.close();
    }
}

它们两个是都可以获取键盘输入的数据的。

那它们有什么不同呢?

首先用next()来获取键盘输入的数据:Hello World!(中间有空格)

运行结果为:

它只输出了Hello

在使用next Line():

运行结果为: 

完整输出。

这就涉及到他俩的特性了,

上图:

 其实可以不用判断是否有输入同样可以获取键盘数据(最基本的格式):

package 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);
    }
}

 输出结果相同:

Scanner扩展:

Scanner还可判断从键盘输入的数据类型:

输出结果为:

如果直接输入小数:

练习:写一个程序,要求我们可以输入多个数字,求其总和与平均数,每一个输入的数字用回车确认,通过输入非数字结束输入并输出执行结果。

public class Demo05{
    public static void main (String[]args){
        //创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数");
        //定义sum
        double sum =0;
        //定义输出的个数m
        int m=0;
        
        //利用while循环判断是否为数字类型
        while(scanner.hasNextDouble()){
            //获取到输入键盘的值
             double x = scanner.nextDouble();
             sum=sum+x;
             m++;
             System.out.print("你已经输入了"+m+"个数,它们的总和为:"+sum+"平均值为:"+sum/m); 
            
        }
    }
}

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值