public class B {
int n;
static int sum=0;
void setN(int n){
this.n=n;
}
int getSum(){
for(int i=1;i<=n;i++){
sum=sum+i;
}
return sum;
}
}public class A {
public static void main(String args[]){
B b1=new B();
B b2=new B();
b1.setN(3);
b2.setN(5);
int s1=b1.getSum();
int s2=b2.getSum();
System.out.println(s1+s2);
}
}
运行后输出为27,我想问为什么不是45呢?
我的想法是这样的:第一次b1.getSum();这里执行后sum的值是6,那么执行b2.getSum();
这里的时候sum=6;然后做循环的话就应当相当于
int sum=6;
for(int i=1;i<=5;i++){
sum=sum+i;
}
这样的话结果就应该是45了。
int n;
static int sum=0;
void setN(int n){
this.n=n;
}
int getSum(){
for(int i=1;i<=n;i++){
sum=sum+i;
}
return sum;
}
}public class A {
public static void main(String args[]){
B b1=new B();
B b2=new B();
b1.setN(3);
b2.setN(5);
int s1=b1.getSum();
int s2=b2.getSum();
System.out.println(s1+s2);
}
}
运行后输出为27,我想问为什么不是45呢?
我的想法是这样的:第一次b1.getSum();这里执行后sum的值是6,那么执行b2.getSum();
这里的时候sum=6;然后做循环的话就应当相当于
int sum=6;
for(int i=1;i<=5;i++){
sum=sum+i;
}
这样的话结果就应该是45了。
for(int i=1;i<=5;i++){
sum=sum+i;
}
sum=21