看样子你是想写一个不用第三方变交换a,b 值的程序吧!,还是说你本来就是要算b+b呢??如果是前者,那你的算法就有问题,如果你的问题只是说为什么打印中a2,b2的值没有变的话,问题就再于你没有分清形参得实参,,你在函数change();中运算了a,b;但这两个变量只是形参,所在的区域是不一样的,你在main()中定义的a,b只能在main中使用,所以你在change中改变的a,b变量是不有义意的,如果非要使得它有意义,你可以把主函数中的a,b定义到主涵数面,使其成为成员变量,但这样一来,你个change中的参数变量名也得改,,不改也行,可以在前面加上
this,这样一来,调用的变量就是成员变量!!而且change()涵数中的参数列表都可以不用写了!!
class Demo
{
static int a = 10;
static int b = 20;
public static void main(String[] args)
{
System.out.println("a1:"+a+",b1:"+b);
change();
System.out.println("a2:"+a+",b2:"+b);
}
public static void change()
{
System.out.println("a3:"+a+",b3:"+b);
a = b;
b = a + b;
System.out.println("a4:"+a+",b4:"+b);
}
}
这样就可以改变,但是。。。。这好改变好像没什么意义!!不知道你的题是什么,要求是什么,,只是解决你这个a2,b2值没变的问题!,,这样算是合格了吧?? |