为了账号安全,请及时绑定邮箱和手机立即绑定

用While循环判断输出100内奇数偶数的和并分别输出。求指教我在那里了弄不明白。

public class TestForchenfa {
    public static void main(String[] args) {
        int a =1;
        int b =2;
        int mim=0;
        int nin=0;
        while( a<=100){
            if(a%2!=0){
                a++;mim+=a;
            }
            while(b<=100){
                if(b%2==0){
                    b++;nin+=b;}
                }
            }
        System.out.println("奇数和为:"+mim);
         System.out.println("偶数和为:"+nin);
    }

}


正在回答

6 回答

问题就在于 自增自减那里,因为奇数和偶数的相差都为2,所以a++和b++要改为 a+=2和b+=2,这样就对了。其实,你这个程序太复杂了,还要用判断奇数和偶数去判断,你a为1,b为2,那么直接一个循环,a+=2,b+=2,然后直到100,这样要简便一点。

1 回复 有任何疑惑可以回复我~
#1

ART原艺美学 提问者

是复杂了点用for循环简单 while 循环不熟所以练一练 谢谢的指点 非常感谢
2017-02-22 回复 有任何疑惑可以回复我~
public class TestForchenfa {
    public static void main(String[] args) {
        int a =1;
        int b =2;
        int mim=0;
        int nin=0;
        while( a<=100)
        {
            mim+=a;
            a+=2;
        }
        while(b<=100)
        {
            nin+=b;
            b+=2;
        }
        System.out.println("奇数和为:"+mim);
        System.out.println("偶数和为:"+nin);
    }
}


3 回复 有任何疑惑可以回复我~
#1

ART原艺美学 提问者

对了谢谢您的指教
2017-02-22 回复 有任何疑惑可以回复我~

  

public static void main(String[]args){
        int i=1;
         int mim=0;
         int nin=0;
         while(i<=100){
            if(i%2 !=0){
                mim+=i;
                i++;
                
            }
            else if(i%2 ==0){
                nin+=i;
                i++;
            
            }}
            System.out.println("奇数和为:"+mim);
            System.out.println("偶数和为:"+nin);
         }
}

//这样才可以。

1 回复 有任何疑惑可以回复我~
#1

ART原艺美学 提问者

这也可以谢谢您了
2017-02-22 回复 有任何疑惑可以回复我~

下面代码可以

public class TestForchenfa {

    public static void main(String[] args) 

    {

         int a =1;

         int b =2;

        int mim=0;

        int nin=0;

        while( a<=100)

        {

            if(a%2!=0)

             {

                mim+=a;

             }

            a++;

          }

            while(b<=100)

          {

                if(b%2==0)

              {

                    nin+=b;

                }

               b++;

            }

        System.out.println("奇数和为:"+mim);

         System.out.println("偶数和为:"+nin);

    }

 

}


1 回复 有任何疑惑可以回复我~

顺序反了,应该先mim+=a;,然后a++。偶数同理

1 回复 有任何疑惑可以回复我~
#1

ART原艺美学 提问者

同样也感谢您
2017-02-22 回复 有任何疑惑可以回复我~

循环里面的意思是如果a是奇数,那么a自增,那a到偶数的时候就不会自增了,所以进入这个循环就出不来了,修改方法是把a++;和b++;拿出if的大括号就可以了

1 回复 有任何疑惑可以回复我~
#1

ART原艺美学 提问者

非常谢谢您的指教
2017-02-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

用While循环判断输出100内奇数偶数的和并分别输出。求指教我在那里了弄不明白。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信