A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//需求:1~100之间偶数的和;
class ForTest2
{
        public static void main(String[] args)
        {
                int sum = 0;
                for (int y=1; y<=100 ; y++ )
                {
                        if (y%2==0)
                        {
                                        sum+=y;
                        }
                System.out.println("sum="+sum);
                }
        }
}

{@5AXZI~_N4COQR7GB$D%{F.jpg (70.57 KB, 下载次数: 19)

求1~100之间偶数的和

求1~100之间偶数的和

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

9 个回复

倒序浏览
你没放在if里面。所以奇数打印一次,偶数打印一次。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
亲,当这个数不是偶数的时候,只是不执行if里面的语句哦,下面的输出语句是属于for循环的,还是每次都执行的,循环100次,必须打印100个值啊,只是相邻的一个偶数和一个基数的值会一样而已

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
实际上 按照你的 题目 不应该把打印放在 循环外面吗
不过按照你问的
y=1 sum =0
y=2 sum +=y  sum =2
y=3 sun=2
y=4 sum+=y sun = 6
y= 5 sun =6

依次即可看出 每个值都会打印两次 啊

  1. class ForTest2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int sum = 0;
  6.                 for (int y=1; y<=100 ; y++ )
  7.                 {
  8.                         if (y%2==0)
  9.                         {
  10.                                         sum+=y;
  11.                         }
  12.                 }
  13.                 System.out.println("sum="+sum);
  14.         }
  15. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
sum的值是偶数的和没错,到那时显示的话应该放在if里面显示,否则奇数的时候也会显示偶数和

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
放在for和if里面都是不行的,它会把每次的结果都输出的。
因为你的要求是输出和,所以你要等for循环完成后才能输出,也就是要把sop输出语句调到for循环外才行。
class ForTest2
{
        public static void main(String[] args)
        {
                int sum = 0;
                for (int y=1; y<=100 ; y++ )
                {
                        if (y%2==0)
                        {
                                        sum+=y;
                        }
                }
                System.out.println("sum="+sum);        }
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 天凌蓝 于 2014-3-4 21:23 编辑

因为你的for循环当偶数时,求出了sum的值,而当奇数时,sum不会被累加,但是你的 System.out.println("sum="+sum);因为放在for循环里面,所以奇数时照样打印一次,所以就会出现两次打印的值是一样的,代码可以改成这样。
  1. class ForTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int sum = 0;
  6.                 for (int y=1; y<=100 ; y++ )
  7.                 {
  8.                         if (y%2==0)
  9.                         {
  10.                               sum+=y;
  11.                                                           System.out.println("sum="+sum);//每一次求和
  12.                         }
  13.                
  14.                 }
  15.                                 System.out.println("sum="+sum);//总和
  16.         }
  17. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
输入语句放在了for循环中啊,亲。。。
  1.         public static void main(String[] args) {
  2.                 int sum=0;
  3.                 for (int i = 1; i <=100; i++) {
  4.                         if(i%2==0){
  5.                                 sum+=i;
  6.                         }
  7.                 }
  8.                 System.out.print("sum="+sum);
  9.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
输出语句放if语句里面就可以了,当y%2!=0时候,sum+=y;不执行,但是输出语句执行啊,只要把输出语句放if语句里面就可以了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
谢谢各位解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马