学习-Java循环while之求非负数之和

第1关:学习-Java循环while之求非负数之和


任务描述

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

相关知识

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

  • while 循环;
  • do…while 循环;
  • for 循环。

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

while 循环

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

图1

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

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

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

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

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

 
  1. 好好学习,天天向上
  2. 好好学习,天天向上
  3. 好好学习,天天向上
  4. 好好学习,天天向上
  5. 好好学习,天天向上
  6. 循环结束

++自增运算符

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

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

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

控制台输出结果:

 
  1. 1
  2. 1
  3. 0
  4. 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  a=input.nextInt();
        // 第三步:判断输入值是否大于0,对大于0的值累加
           if(a>0)
                sum+=a;  
        // 第四步:while循环中的变量加1
            i++;  
       }   
        // 第五步:打印sum值
       System.out.print(""+sum);
        /********** End **********/

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值