Java循环while之求非负数之和

目录

任务描述

相关知识

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<n){
  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

编程要求

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

代码展示

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 t = input.nextInt();

        // 第三步:判断输入值是否大于0,对大于0的值累加

           if(t>0) sum+=t; 

        // 第四步:while循环中的变量加1

           i++;

       }

        // 第五步:打印sum值

       System.out.print(sum);

        /********** End **********/

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值