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例题讲解的更多相关文章
- JS之document例题讲解2
例题三.图片轮播 <body> <div style="width:1000px; height:250px; margin-top:30px"> < ...
- JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)
作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...
- UVA10200-Prime Time/HDU2161-Primes,例题讲解,牛逼的费马小定理和欧拉函数判素数。
10200 - Prime Time 此题极坑(本菜太弱),鉴定完毕,9遍过. 题意:很简单的求一个区间 ...
- php伪协议分析与CTF例题讲解
本文大量转载于:https://blog.csdn.net/qq_41289254/article/details/81388343 (感谢博主) 一,php:// 访问输入 ...
- Palindromic Tree 回文自动机-回文树 例题+讲解
回文树,也叫回文自动机,是2014年被西伯利亚民族发明的,其功能如下: 1.求前缀字符串中的本质不同的回文串种类 2.求每个本质不同回文串的个数 3.以下标i为结尾的回文串个数/种类 4.每个本质不同 ...
- ajax讲解:“创建用户”和“用户登录”练习
ajax可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. 接下来,将以例子的形式进行讲解 例一:创建用户 ...
- 字典树 && 例题 Xor Sum HDU - 4825 (板子)
一.字典树描述:Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优 ...
- 数位dp整理 && 例题HDU - 2089 不要62 && 例题 HDU - 3555 Bomb
数位dp: 数位dp是一种计数用的dp,一般就是要统计一个区间[li,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp.数位的含义:一个数有个位.十位.百位.千位......数 ...
- 2-SAT 问题与解法小结
2-SAT 问题与解法小结 这个算法十分的奇妙qwq... 将一类判定问题转换为图论问题,然后就很容易解决了. 本文有一些地方摘录了一下赵爽<2-SAT解法浅析> (侵删) 一些概念: \ ...
- Hash算法入门指南(聊点不一样的算法人生)
前言 很多人到现在为止都总是问我算法该怎么学啊,数据结构好难啊怎么的,学习难度被莫名的夸大了,其实不然.对于一个学计算机相关专业的人都知道,数据结构是大学的一门必修课,数据结构与算法是基础,却常常容易 ...
随机推荐
- ProxySQL(12):禁止多路路由
文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9372447.html multiplexing multiplexing,作用是将语句分多路路由.开启了mu ...
- 第六章:Django 综合篇 - 4:django-admin和manage.py
目录 一.Django内置命令选项 check dbshell diffsettings flush makemigrations migrate runserver shell startapp s ...
- 使用Gitlab的CI/CD功能自动化推送docker镜像到Nexus仓库出现的问题
在服务器中可以直接使用命令行登录,推送docker镜像等 但是在使用Gitlab的CI/CD功能中,gitlab-ci.yml文件执行过程中出现如下错误: 原因分析: 服务器上之前使用命令行登陆过Ne ...
- 自定义View6 -塔防小游戏:第三篇防御塔随意放置+多组野怪
第一篇:一个防御塔+多个野怪(简易版)第二篇:防御塔随意放置第三篇:防御塔随意放置+多组野怪 1.动态addView防御塔 2.防御塔放置后不可以移动 3.弯曲道路 4.素材替换 第四篇:多波野怪 第 ...
- MySQL实战,SQL语句
student数据库 student学生表,course课程表表,sc成绩表 -- 1.找出成绩为95分的学生的姓名 SELECT Sname FROM student WHERE Sno IN( S ...
- P5658 [CSP-S2019] 括号树
对于特殊性质fi=i-1,原图是一条链,注意到当前节点是' ('不会产生贡献,')'才会产生,那么思考怎么的计算这个贡献. ()()():每个位置贡献是0,1,0,2,0,3.答案统计出来就是说0,1 ...
- 华为设备配置telnet远程登陆命令
user-interface vty 0 4 进入0~4前五个的VTY用户界面进行整体配置 authentication-mode password 设置验证方式为密码 user privilege ...
- MVVM视图模型
- jstl的使用 转发和重定向(做项目遇到的一些问题总结)
文章目录 1.jstl的使用 2.转发和重定向 3.shiro 4.spring是什么? 5.对AOP的理解 6.标签通常和标签一起使用 7.springmvc中的form表单 7.1 form标签 ...
- python 矩阵切片
假设n是一个numpy或者torch.tensor张量,那么 n[a:b,c:d]则代表从a到b行(不含b行),c到d列(不含d列)的切片 当然,ab.cd中的数是可以省略掉,只要abcd中有一个数即 ...