首页 > 编程语言 >头歌第四章-之循环结构-练习2-学习-Java循环while之求非负数之和

头歌第四章-之循环结构-练习2-学习-Java循环while之求非负数之和

时间:2024-12-11 19:28:54浏览次数:5  
标签:之求 Java Scanner ++ System while 循环 变量

任务描述
本关任务:使用 Scanner 对象接收一组数据,每组数据包含 4 个整数,其中有正有负,比如:22 33 -22 32。请使用 while 循环求出每组数据的非负数之和(每组数据之间用空格分开,而组与组之间用换行符分开)。

相关知识
当我们想要对同样的操作执行多次,就需要使用到循环结构,在 Java 中循环结构主要分为三种:

while 循环;
do...while 循环;
for 循环。
今天我们来学习第一种循环结构 —— while 循环。

while 循环
首先我们来了解一下 while 循环的逻辑:


如上图所示,while 循环首先会判断 while 后面的条件是否成立,成立的话执行一次循环体语句序列,执行完成后,继续返回判断条件是否成立,如此反复,直到循环条件不成立,退出循环,它的语法格式如下所示:

while( 循环条件表达式 ) {
  循环体语句序列;
}


while 循环使用案例:循环打印”好好学习,天天向上“ n 次。

public class Demo {
    public static void main(String[] args) {
        // 定义整数变量i
        int i=0;
        // 创建Scanner对象
        Scanner input = new Scanner(System.in);
        
        // 获取输入的整数值
        int n = input.nextInt();
        
        // 只要i小于n,便一直执行循环体中的代码
        while (i<n){
        // 循环体代码
          System.out.println("好好学习,天天向上");
          i++;// i的值加1
        }
        // 循环结束,注意此处不是println
        System.out.print("循环结束");
    }
}


当 Scanner 对象接收的整数值为 5 时,输出结果如下:

好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
循环结束
++自增运算符
在以上案例中,我们使用 i++ 对变量 i 的值进行加 1 操作,这里的 ++ 在 Java 中叫做自增运算符,++ 可以置于变量后(i++),也可以置于变量前(++i),置于变量后表示先使用 i,再对 i 的值加 1,置于变量前表示先对 i 的值加 1,然后再使用 i。

我们可以通过如下代码体现他们的区别:

public class Demo {
    public static void main(String[] args) {
       int i=0;     // 定义整数变量i
       int z=0;     // 定义整数变量z
        // 输出i的值
        System.out.println(++i);     // 使用i之前加1,所以这里输出值为1
        System.out.println(i);
        // 输出z的值
        System.out.println(z++);     // 使用z之后加1,所以这里输出值为0
        System.out.print(z);
    }}


控制台输出结果:

1
1
0
1
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

可在右侧 “测试结果”区查看具体的测试集详情。

开始你的任务吧,祝你成功!

/*
 任务:使用while循环结合自增运算符获取控制台的一组输入(每组输入包含4个整数,其中有正有负,比如:22 33 -22 32),请求出每组输入的非负数之和
*/

import java.util.Scanner;

public class MyWhile {

    public static void main(String[] args) {
	    // 定义变量sum,用于求非负数的和,并赋初值0。
        int sum=0;
        // 定义变量i,用于控制循环,并赋初值1。
        int i=1;
        // 定义Scanner对象
        Scanner input = new Scanner(System.in);
        // 请在 Begin-End 间编写代码
        
        /********** Begin **********/
        // 第一步:定义while循环,循环4次
       while (i <= 4) {
        // 第二步:获取输入值
        int num = input.nextInt();
        // 第三步:判断输入值是否大于0,对大于0的值累加
        if (num >= 0) {
            sum += num;
        }
        // 第四步:while循环中的变量加1
        i++;  
       }
        // 第五步:打印sum值
        System.out.println(sum);
        /********** End **********/

    }
}

标签:之求,Java,Scanner,++,System,while,循环,变量
From: https://blog.csdn.net/2301_76650327/article/details/144408202

相关文章

  • 头歌第4章 -分支结构- 练习3 学习-Java多路分支之switch之百分制成绩转换GPA成绩
    任务描述本关任务:给出一个GPA成绩,输出与之对应的百分制成绩区间。GPA标准为:优秀(A):100-90分;良好(B):80-89分;中等(C):70-79分;及格(D):60-69分;不及格(E):60分以下。相关知识为了完成本关任务,你需要掌握:如何使用switch语句。switch语句switch语句的......
  • 12.10 CW 模拟赛 T3. 循环
    算法很容易想到枚举短边断环之后\(\mathcal{O}(P)\)的求答案那么这个算法还有前途吗?可以发现,对于每次枚举断边,断\((i,i+1)\)和\((i-1,i)\)这两条边,变化量并不大,严格来说,均摊复杂度\(\mathcal{O}(P)\)具体实现上怎么处理呢?将断第\(x\)条边作为横......
  • Java 的 CMS 垃圾回收流程
    Java的CMS垃圾回收流程CMS(ConcurrentMark-Sweep)垃圾回收器是一种并发垃圾回收器,旨在减少垃圾回收时的停顿时间,适用于对低延迟要求较高的应用。CMS主要通过并发标记和并发清除阶段来减少暂停时间。CMS主要包含以下几个阶段:1.CMS的垃圾回收流程CMS的垃圾回收过程包括......
  • Java学习Day07——集合
    1. 集合与数组1.1 数组的缺陷1. 长度开始时必须指定,而且一旦指定,不能更改2. 保存的必须为同一类型的元素3. 使用数组进行增加/删除元素的示意代码-比较麻烦 1.2 集合1. 可以动态保存任意多个对象,使用比较方便2.  提供了一系列方便的操作对象的方法:......
  • Java 的 G1 垃圾回收流程
    Java的G1垃圾回收流程G1(Garbage-First)垃圾收集器是一种区域化、并发、低延迟的垃圾回收器,适合大堆内存和对暂停时间有严格要求的应用程序。G1的垃圾回收流程主要包括以下阶段:1.堆的区域化分区在G1中,堆被分为多个大小相等的Region,每个Region可以扮演以下角色之一:E......
  • 什么是 Java 中的 logging write barrier?
    什么是Java中的LoggingWriteBarrier?LoggingWriteBarrier是Java垃圾回收器在维护堆引用关系时常用的一种机制。它是一种特殊的写屏障(WriteBarrier),用于记录堆中某些引用的变化情况。该机制的主要目的是协助垃圾回收器在并发或增量标记阶段,正确跟踪对象引用的变化。1.......
  • Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性?
    Java中的CMS和G1垃圾收集器如何维持并发的正确性?CMS(ConcurrentMark-Sweep)和G1(Garbage-First)垃圾收集器是两种低延迟的垃圾回收器,它们通过并发阶段与应用线程(Mutator)同时运行,以减少暂停时间。为了维持并发垃圾回收的正确性,二者采取了不同的技术和策略。1.CMS垃圾收集器......
  • Java 的 CMS 垃圾回收器和 G1 垃圾回收器在记忆集的维护上有什么不同?
    Java的CMS垃圾回收器和G1垃圾回收器在记忆集的维护上的不同记忆集(RememberedSet,RSet)是垃圾回收器用来跟踪跨代引用的重要结构,它记录老年代对象对新生代对象的引用。CMS和G1垃圾回收器在记忆集的维护方式和粒度上有显著差异。1.CMS垃圾回收器的记忆集维护1.1粒度......
  • 【最新原创毕设】基于SpringBoot的学生选课管理系统+56695(免费领源码)可做计算机毕业设
    基于Springboot和Vue的学生选课管理系统的设计与实现摘 要本文介绍了一种基于SpringBoot和Vue的学生选课管理系统的设计与实现。该系统旨在提供一个高效、可靠的选课平台,使学生和教职工能够方便地进行课程选择和管理。在系统设计上,我们采用了SpringBoot作为后端框架,利用......
  • (2024最新毕设合集)基于的同城学校二手交易平台|可做计算机毕业设计JAVA、PHP、爬虫、AP
    同城学校二手交易平台设计与实现摘 要利用SpringBoot框架和相关Uni-app技术,设计和实现一个高效、可靠的同城学校二手交易平台。该系统将提供闲置、发布、求购等主要功能,旨在促进二手交易平台的便捷和透明化。本研究首先介绍了同城学校二手交易平台的研究背景和现状,包括同城......