class Array{
int a=209,b=208,c=207,d=206,m=205,n=204;
   
  int getA(){
      int sum = 0;
while(a <2003)
 { a = a + 6;
       sum = sum + a;}
return sum ;
                       
}

int getB(){
       int sum =0;
while(b<2002)
{ b= b + 6;
       sum = sum + b;}
return sum ;

}

int getC(){
int sum = 0;
while(c<2001)
{ c= c + 6;
       sum = sum + c;}
return sum ;

}

int getD(){
int sum = 0;
while(d<2000)
{ d= d+ 6;
       sum = sum + d;}
return sum ;

}
int getM(){
       int sum = 0;
while(m<1999)
{ m= m + 6;
       sum = sum + m;}
return sum ;
}
int getN(){
        int sum = 0;
while(n<1998)
{ n= n + 6;
       sum = sum + n;}
return sum ;
}
}
public class TestArray{
public static void main(String[] args){
Array x = new Array();
System.out.println(x.getA() + x.getB() + x.getC() - x.getD() - x.getM() - x.getN());
System.out.println(x.getA());
System.out.println(x.getB());
System.out.println(x.getC());
System.out.println(x.getD());
System.out.println(x.getM());
System.out.println(x.getN());
}
}
为什么,我运行的结果不能单独显示六个方法的结果,只有第一个结果,而且结果和我预想的有一点偏差?请各位高手帮帮忙!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zyp627】截止到2008-07-27 12:02:00的历史汇总数据(不包括此帖):
    发帖的总数量:63                       发帖的总分数:850                      每贴平均分数:13                       
    回帖的总数量:33                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:62                       结贴的总分数:830                      
    无满意结贴数:3                        无满意结贴分:60                       
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:98.41 %               结分的百分比:97.65 %                  
    无满意结贴率:4.84  %               无满意结分率:7.23  %                  
    值得尊敬
      

  2.   

    System.out.println(x.getA() + x.getB() + x.getC() - x.getD() - x.getM() - x.getN()); 
    你运行完上面这个方法后,因变量a,b,c,d,m,n都已不满足方法内再次循环的条件,所以方法内的sum变量已不能累加。
    你可以写个reset方法重置变量为初始值。 
      

  3.   

    在你编写的类中a,b,c,d,m,n都是字段
    当调用getA() .......getN()时 ,都有可能改变它的值System.out.println(x.getA() + x.getB() + x.getC() - x.getD() - x.getM() - x.getN()); 
    运行上面那条语句后,a,b,c,d,m,n的值已经改变了
    已经大于getX()方法中的循环判断的值了.
    所以第二次调用的时候,getX()的循环根本没运行.
    sum还是等于它的初始值 0所以最后会打出6个0
      

  4.   

     System.out.println(x.getA() + x.getB() + x.getC() - x.getD() - x.getM() - x.getN());
    执行完这句之后,六个get方法已经调用过了,这时候a,b,c,d,m,n已经是很大的值了,你可以自己输出看看。
    所以再次调用的时候,六个方法中的循环不会执行,返回的就是sum=0的值