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); } }
问题就在于 自增自减那里,因为奇数和偶数的相差都为2,所以a++和b++要改为 a+=2和b+=2,这样就对了。其实,你这个程序太复杂了,还要用判断奇数和偶数去判断,你a为1,b为2,那么直接一个循环,a+=2,b+=2,然后直到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) { mim+=a; a+=2; } while(b<=100) { nin+=b; b+=2; } System.out.println("奇数和为:"+mim); System.out.println("偶数和为:"+nin); } }
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);
}
}
//这样才可以。
下面代码可以
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);
}
}
顺序反了,应该先mim+=a;,然后a++。偶数同理
循环里面的意思是如果a是奇数,那么a自增,那a到偶数的时候就不会自增了,所以进入这个循环就出不来了,修改方法是把a++;和b++;拿出if的大括号就可以了