猿问

for循环的过程

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 C {

	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);
		System.out.println(s2);
	}

}

结果是:6

             21


我为什么想不i明白S2会得21呢?为什么不是15??

一天不见i
浏览 1256回答 1
1回答

产品经理不是经理

因为b1.getSum();执行完成后,静态成员变量sum的值已经变成了6而不是0;当你执行b2.getSum()的时候, 累加的和自然是21了。
随时随地看视频慕课网APP

相关分类

Java
我要回答