java中用while循环和for循环实现输入数字求和与求平均数

2023-11-01

首先我们先创建一个主方法,然后在主方法下编写实现代码

首先创建一个扫描器,来接收键盘输入数据,这里我们会用到java里的Scanner这个工具包

然后输入一下提醒用户输入数字

public static void main(String[] args) {
    //首先创建一个扫描器,来接收键盘输入数据
    Scanner scanner = new Scanner(System.in);

    System.out.println("请输入一个数字:");
    
}

定义三个变量用来统计结果,然后利用while循环语句来实现,如果输入的是数字则判断为真则执行循环体里的语句,a保存接收键盘输入的值,x自增,sum表示求和,avg表示平均数;如果输入的不为数字则判断为假不执行循环体直接跳出结束程序。

while (scanner.hasNextDouble()){    //判断键盘输入是否还有下一个Double数据
    double a=scanner.nextDouble();  //定义a来接收键盘输入的值
    x++;
    sum+=a;
    avg=sum/x;
    System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum);
    System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg);
    System.out.println("您输入的数据格式正确,请继续输入:");
}

运行结果:

 

 

源码如下:

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        //首先创建一个扫描器,来接收键盘输入数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入一个数字:");
        double sum=0;
        double avg=0;
        int x=0;
        while (scanner.hasNextDouble()){    //判断键盘输入是否还有下一个Double数据
            double a=scanner.nextDouble();  //定义a来接收键盘输入的值
            x++;
            sum+=a;
            avg=sum/x;
            System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum);
            System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg);
            System.out.println("您输入的数据格式正确,请继续输入:");
        }
        System.out.println("您输入的不是数字,结束计算,求和输出结果为:"+sum);
        System.out.println("您输入的不是数字,结束计算,平均数输出结果为:"+avg);

        scanner.close();
    }
}

注意:有关于输入输出流的一定要记得用完之后关闭,不然会占用资源会导致电脑变得很慢

利用for循环实现和while循环一个道理,只不过用来不同的循环语句

运行结果:

 

 

源码如下:

import java.util.Scanner;

public class ScannerDemo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请您输入一个数字:");

        double sum=0;
        double avg=0;
        for (int x=1;scanner.hasNextDouble();x++){
            double a = scanner.nextDouble();
            sum+=a;
            avg=sum/x;
            System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum);
            System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg);
            System.out.println("您输入的数据格式正确,请继续输入:");
        }

        System.out.println("您输入的不是数字,结束计算,求和输出结果为:"+sum);
        System.out.println("您输入的不是数字,结束计算,平均数输出结果为:"+avg);

        scanner.close();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中用while循环和for循环实现输入数字求和与求平均数 的相关文章

随机推荐

  • [面试题] 递增序列生成

    给定一个表达式 f i j 2 i 5 j i 和 j 为正整数 使得f i j 严格递增 求这个递增序列 思路 和 剑指OFFER 中求丑数的题目很像 序列中第N个数 必然是是前N 1个数乘以 2 或者乘以5 中大于第N 1个数的最小值
  • 高并发场景下的限流策略

    高并发场景下的限流策略 性能调优是针对于代码本身的不规范性和系统资源的瓶颈的 当计算机的硬件资源达到瓶颈的时间已经无法调优了 高并发场景下一方面通过缓存 异步化 服务化 集群去增加整个系统的吞吐量 另一方面通过限流 降级来保护系统 什么是限
  • 机器学习D14——随机森林

    随机森林 是bagging装袋法的代表 弱学习器只可以是决策树 简介 随机森林是一种有监督学习算法 是以决策树为基学习器的集成学习算法 随机森林非常简单 易于实现 计算开销也很小 在分类和回归上表现出非常惊人的性能 因此 随机森林被誉为 代
  • JavaFX 多线程之 Task、Service、ScheduledService

    JavaFX 多线程之 Task Service ScheduledService 一 开发环境 二 javafx concurrent 包 1 Worker 接口 2 Task 类 取消 Task 显示后台 Task 的进度 3 Serv
  • redis配置与优化

    文章目录 redis配置与优化 关系型数据库 非关系型数据库 关系型数据库和非关系型数据库区别 对事务性的支持不同 非关系型数据库产生背景 总结 Redis简介 Redis 具有以下几个优点 使用场景 哪些数据适合放入缓存中 Redis为什
  • mysql提取.sql备份文件中的单个表以及表数据

    背景 随着业务模块的不断在增多 数据库mysql容量也是越来越大 做测试时 整个备份还原比较耗费时间 由于有时候仅仅需要单个表或者少数几个表 要想从整个备份文件中提取指定的表以及数据 需要以下方法 说明 mysql常规备份还原后续补充 废话
  • nginx的安装和全局配置

    目录 何为nginx Nginx 功能介绍 基础特性 nginx架构 Nginx 进程结构 nginx 模块 模块分类 使用方式 编译安装nginx 第一步 获取安装包 第二步 安装依赖 第三步 创建用户nginx 第四步 解压安装包 第五
  • 【PTA】约瑟夫环之循环数组

    一 题目 n个人围成一圈 编号依次为 0 1 2 n 1 从第一个人开始报数 1 2 数到m者出列 再从下一个开始重新报数 数到m者再出列 下面的程序中 用一个循环数组来模拟环 0下标的前一个是n 1 n 1的下一个是0 数组下标表示人的编
  • react项目引入字体 (font-awsome)

    webpack config js const path require path const htmlPlugin require html webpack plugin module exports entry src index js
  • ubuntu安装ros FULL完全版

    UBUNTU安装ROS FULL完全版 1 修改安装源URL Setup your sources list Setup your computer to accept software from packages ros org sudo
  • 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...

    0x01 概述 近日 我们的域名异常监测系统 DNSMon 捕捉到域名 pro csocools com 的异常活动 根据数据覆盖度估算 感染规模超过100k 我们通过告警域名关联到一批样本和 C2 分析样本后发现是与双枪恶意程序相关的团伙
  • spring项目启动时执行任务

    在我们写代码的时候 很多时候难免碰到一些需求是需要我们在项目启动的时候来 启动线程 读取缓存 开启某个服务等等操作 这时候难免会犹豫该怎么做 究竟在哪里执行这个操作 是加载spring bean的时候 还是项目刚启动的时候 接下来我会介绍几
  • CentOS 7 基本环境设置

    1 修改虚拟机静态ip 1 编辑ifcfg ens33 文件 以root用户登陆 在终端命令窗口中输入 root hadoop101 vim etc sysconfig network scripts ifcfg ens33 TYPE Et
  • python(10):批量修改文件名

    文章目录 1 使用Python的字符串操作来去除文件名高位的多余零 说明 代码 示例 2 将文件夹中的文件重命名为递增的数字加上原始文件名的后缀 代码 运行前后 1 使用Python的字符串操作来去除文件名高位的多余零 说明 一个目录下的文
  • YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额1元起步 多少随意 锋影 email 174176320 qq com YUV图解 YUV444 YUV422 YUV420 YV12 NV12 NV21 YUV格
  • 如果你的开发板上STM32采用外部晶振,那么就不能选择BYPASS Clock Source (旁路时钟源)模式,否则STM32将会工作不正常。

    如果你的开发板上STM32采用外部晶振 那么就不能选择BYPASS Clock Source 旁路时钟源 模式 否则STM32将会工作不正常 BYPASS Clock Source 旁路时钟源 指无需使用外部晶体时所需的芯片内部时钟驱动组件
  • 博客图片被设置防盗链接?别慌,我爆肝三晚写了这个批量图片站点转移脚本(已开源)

    我个人经常在CSDN上进行写作 前一段时间我选择自己建站 为了省事 我直接使用了CSDN上的图片地址 当你在CSDN上写作时你上传的图片会存储在CSDN的服务器中 可以直接在网页上输入URL访问 但是上周CSDN开始对图片施加防盗链接了 我
  • 渣本零基础努力自学python,半年成功上岸,良心分享学习心得和踩坑经历

    前言 写这篇文章想了很久很久 到底该怎么写 关于零基础学python 观点很多 以下每个字都是经验所得 都是站在一个零基础的人的角度写的 纯手打 网上优秀资源整合 希望大家能认真看 接下来文章会侧重在以下几方面 1 零基础如何学习pytho
  • 新买的电脑怎么装系统_u盘装系统怎么装iso文件

    导读 u盘装系统怎么装相关问题 下面191路由网小编为大家详细解答 在办公的过程的 U盘是必不可少的工具 但是也有不少用户不知道U盘还能用来重装系统 为了让大家都可以自己动手重装系统 今天就特地整理了这篇教程来教大家电脑怎么用u盘装系统 大
  • java中用while循环和for循环实现输入数字求和与求平均数

    首先我们先创建一个主方法 然后在主方法下编写实现代码 首先创建一个扫描器 来接收键盘输入数据 这里我们会用到java里的Scanner这个工具包 然后输入一下提醒用户输入数字 public static void main String a