问答详情
源自:4-14 Java 循环语句之多重循环

用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);
    }

}


提问者:ART原艺美学 2017-02-22 16:39

个回答

  • 师弟驾到
    2017-02-22 16:58:15
    已采纳

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

  • 守護2
    2017-02-22 17:54:55

    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);
        }
    }


  • kiho
    2017-02-22 17:19:47

      

    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);
             }
    }

    //这样才可以。

  • 原木兮
    2017-02-22 17:12:45

    下面代码可以

    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);

        }

     

    }


  • 慕粉1240286161
    2017-02-22 16:57:25

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

  • zh20419
    2017-02-22 16:50:42

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