首页 > 其他分享 >Scanner例题讲解

Scanner例题讲解

时间:2022-12-05 15:34:37浏览次数:36  
标签:scanner double sum System 讲解 例题 输入 Scanner

Scanner例题讲解

题:输入多个平均数,求其总和与平均数;每输入一个数用回车确认,通过输入非数字来结束输入并输出执行结果

 public class Demo05 {
     //输入多个平均数,求其总和与平均数;每输入一个数用回车确认,
     // 通过输入非数字来结束输入并输出执行结果
     public static void main(String[] args){
         double sum=0;  //和
         int m=0;  //个数
         Scanner scanner = new Scanner(System.in);
         //通过循环判断是否还有输入,并对每一次进行求和与计数
         while(scanner.hasNextDouble()){
             //用x收集数据
             double x=scanner.nextDouble();
             m++; //m=m+1
             sum=sum+x;
        }
         System.out.println(m + "个数的和为:" + sum);
         System.out.println(m + "个数的平均值为:" + (sum / m));
         scanner.close();  //别忘了
 ​
    }
 }

scanner.hasNextDouble:检测输入的值是否符合double类型,符合才会转化,若不符合double则结束输入(不能输入了)。输入的各个数据可以用空格或enter隔开。

重点:

  • scanner.nextdouble只能读取一个double,如:

 public class test {
     public static void main(String[] args) {
         Scanner scanner=new Scanner(System.in);
         double i=scanner.nextDouble();
         System.out.println(i);
    }
 }//输入多个double以空格隔开,只会读取第一个
  • 接收数据对象放在循环外还是循环内的问题,例

     public class Demo05 {
         //输入多个平均数,求其总和与平均数;每输入一个数用回车确认,
         // 通过输入非数字来结束输入并输出执行结果
         public static void main(String[] args){
             double sum=0;  //和
             int m=0;  //个数
             Scanner scanner = new Scanner(System.in);
             //通过循环判断是否还有输入,并对每一次进行求和与计数
             double x=scanner.nextDouble();
             while(scanner.hasNextDouble()){
                 //用x收集数据
                 //double x=scanner.nextDouble();
                 m++; //m=m+1
                 sum=sum+x;
            }
             System.out.println(m + "个数的和为:" + sum);
             System.out.println(m + "个数的平均值为:" + (sum / m));
             scanner.close();  //别忘了
        }
     }

    x的变量定义放在while里为正解,while循环一次x就定义一次。但是放在while外面时,.nextdouble只会读取一个即第一个double数据,当输入3.14 2.5 时,发现无法停止输入。因为x一直为3.14,nextdouble是对2.5进行判断,是符合double类型的,相当于没有检测到结束符,所以要求一直输入,while一直为true一直运行循环里;

    当输入3.14 asd时,x为3.14,nextdouble检测的是asd,为非double数据,相当于结束符,且while条件为false,结束循环。

  •  

标签:scanner,double,sum,System,讲解,例题,输入,Scanner
From: https://www.cnblogs.com/HomeFJ/p/16952436.html

相关文章

  • 2022 年超详细过程步骤讲解 CentOS 7 安装jdk1.8
    linux系统下安装jdk以及环境变量的设置、真的是比window下方便一万倍1、卸载系统自带jdk1.1查看系统自带jdkjava-version1.2查看java相关文件rpm-qa|grepja......
  • 2022-12-03 走势多异性:用同一理论的不同视角对同一现象进行分析。看的是9月1日多义性
    教你炒股票36: 而任何组合的反映都是有意义的,对这些组合意义的全面把握,就是一个工夫上的长进了。此外,组合的一个要点在于,尽量避繁就简,因为中枢扩展比较复杂,如果有组合使得......
  • 2022 年超详细过程步骤讲解 CentOS 7 安装jdk1.8
    linux系统下安装jdk以及环境变量的设置、真的是比window下方便一万倍1、卸载系统自带jdk1.1查看系统自带jdkjava-version1.2查看java相关文件rpm-qa|grepja......
  • 问题解决系列:从源码讲解为什么是 'JZ0SL_ Unsupported SQL type 1111'
    一、问题场景正在做代码改造,使用​​mybatis​​​+​​sybase​​进行数据库操作,运行过程中,提示以下报错:java.io.IOException:JZ0SL:UnsupportedSQLtype1111.本篇博客......
  • 数据库(部分讲解)
    边框边框属性border-width(边框宽度)border-style(边框样式)border-color(边框颜色)border-left-width:5px;border-left-style:dotted;border-left-color:#0000ff;......
  • 记录--从AI到美颜全流程讲解
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助美颜和短视频美颜相关APP可以说是现在手机上的必备的软件,例如抖音,快手,拍出的“照骗”和视频不加美颜效......
  • day03--Scanner用户交互
    用户交互Scanner对象基本语法Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,再读取前我们一般需要使用hasNext()与ha......
  • kafka基础讲解
    再过半小时,你就能明白kafka的工作原理了为什么需要消息队列周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”......
  • token系统讲解及过期处理
    token系统讲解及过期处理:https://blog.csdn.net/qq_35942348/article/details/125971246token系统讲解及过期处理1.token是什么?用来做什么2.token存储在哪?过期了怎么办?3......
  • spring boot使用阿里云分片上传讲解示例
    阿里云分片上传importcom.aliyun.oss.ClientException;importcom.aliyun.oss.OSS;importcom.aliyun.oss.OSSClientBuilder;importcom.aliyun.oss.OSSException;im......