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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高丽华 中级黑马   /  2013-12-30 17:12  /  2816 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高丽华 于 2014-1-1 11:03 编辑

//使用do-while算出1-100之间的偶数总和。
class Test_7  
{
        public static void main(String[] args)
        {
                int sum=0;
                int x=0;
                do
                {
                        //if (x%2==0)
                        x+=2;//求偶数个数为什么写x+=2能往下执行代码,而写if (x%2==0)却不能向下执行代码啊???                        
                                     sum=sum+x;
                }
                while (x<=100);
                System.out.println(sum);
        }
}

评分

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

查看全部评分

7 个回复

倒序浏览
楼主如果写if (x%2==0),x的值一直都是0,循环就进入死循环了。
回复 使用道具 举报
public class test22 {
        public static void main(String[] args)
        {
                int sum=0;
                int x=0;
                do
                {
                        if(x%2==0)
                                sum=sum+x;
                        x=x+2;
                }
                while(x<=100);
                System.out.print(sum);
        }
}
可以运行结果2550

评分

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

查看全部评分

回复 使用道具 举报
if(x%2==0)
      sum=sum+x;
  x++;
楼主,你的代码用if应该这样。
或者直接sum=sum+x;
x=x+2

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
你要写if(x%2==0),因为你并没有让x的值增加,所以一直就会打印0,成了死循环
应该是if(x%2==0){
sum= sum+x;
x++;//让x的值自增这才行
}

评分

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

查看全部评分

回复 使用道具 举报
楼主提问的问题是不是有点问题?[论坛提问] 求偶数个数代码的疑惑???应该是求某一范围的偶数个数啊!再说偶数的和,你的写法也有问题,你把sum = sum+x放在x+=2前面,然后用了do while方法,也就是说,开始始就让sum为2,偶数0没有参与运算,后面的102倒是参加了,最后计算的结果也不对。建议你还是用for循环语句好点。

评分

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

查看全部评分

回复 使用道具 举报
再说说你那个::求偶数个数为什么写x+=2能往下执行代码,而写if (x%2==0)却不能向下执行代码啊???         
%是取余符号,从程序一开始,0进来,然后0%2==0,后面判断,0<100,符合,就接着进去do执行,如此反复,就是一个死循环。
下面是我写的一个代码:
class Test5
{
        public static void main(String[] args) throws IOException
        {
               
        int sum=0;
        int x=0;
        for( x=0; x<=100; x+=2)
                {
                        sum = sum + x;
                }
                System.out.println("sum="+sum);
        }
}

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
hurryup 高级黑马 2013-12-30 20:02:02
8#
由然自美 发表于 2013-12-30 18:47
你要写if(x%2==0),因为你并没有让x的值增加,所以一直就会打印0,成了死循环
应该是if(x%2==0){
sum= sum+x;

这哥们说的对,楼主把x的初始值设为1,do{...}里面加个自增x++就可以了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马