黑马程序员技术交流社区

标题: 为什么值没有互换 [打印本页]

作者: 670982188@qq.co    时间: 2015-1-14 22:58
标题: 为什么值没有互换

public class Swap {
//数值交换函数
    public static void swap(int a,int b){
        int temp=a;
        a=b;
        b=temp;
    }

    public static void main(String[] args) {
        int m=1,n=2;
        swap(m,n);
        System.out.println("m="+m+",n="+n);
    }
}
作者: 黑马李文    时间: 2015-1-14 23:09
本帖最后由 黑马李文 于 2015-1-14 23:10 编辑

打印语句在main函数里面的  虽然你去调用了交换值的方法。但是交换后的值并没有返回。所以打印的还是原来的值   
作者: 466273082    时间: 2015-1-14 23:54
过来瞧瞧,路过的哦
作者: jojo    时间: 2015-1-15 00:09
值传递问题
作者: zhengyijun    时间: 2015-1-15 10:05
定义变量相当于在内存中开辟一块空间用于存储相对应的数据,这里a b m n是4块不同的存储空间。你的程序只是把m的值赋给a,把n的值赋给b,对于n和m本身的值是没有影响的。这样的话你的swap方法就属于垃圾代码,没有任何意义。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2