Java 交换两个数的方法,不要直接写在main方法里的,是单独的方法。

如题所述

  Java 方法的参数是简单类型的时候,是按值传递的 (pass by value),所以Java里面不能实现和C中一样的swap方法来交换两个数的值。非要用的话只能这样写:

 //交换数组data中的第a和第b个元素
 public static void swap(int[] data, int a, int b) {
        int t = data[a];
        data[a] = data[b];
        data[b] = t;
    }

  估计不是你想要的效果。

       关于Java中参数和引用的问题建议看看下面的博文:

  http://blog.csdn.net/zw_2011/article/details/6431448

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-18
package com.zaifu;
public class T
{
// 交换数组data中的第a和第b个元素
public static void swap(int a, int b)
{
System.out.println("********交换前********");
System.out.println("参数一:"+a+",参数二:"+b);
int t = a;
a = b;
b = t;
System.out.println("********交换后********");
System.out.println("参数一:"+a+",参数二:"+b);
}
public static void main(String[] args)
{
int x=10;
int y=20;
swap(x,y);
}
}追问

哥们,你真能混淆视听!

追答

//嗯,上面犯了一各错误,java是传值的,那样只是交换了参数中的值,
//并没有影响实参的值。
//修改后的代码:
package com.zaifu;
public class exchange8
{
public static void main(String args[])
{
int[] x = new int[] { 2, 4 };
System.out.println("交换前x=" + x[0]);
System.out.println("交换前y=" + x[1]);
swap(x);
System.out.println("交换后x=" + x[0]);
System.out.println("交换后y=" + x[1]);
}
public static void swap(int[] x)
{
int temp = x[0];
x[0] = x[1];
x[1] = temp;
}
}

本回答被网友采纳
第2个回答  2013-08-18
冒泡就是交换的变形。

int temp

temp=a[i];
a[i]=a[j];
a[j]=temp;
交换了。

第4个回答  2020-08-03

恕我直言,下面的评论全是弟弟

代码我就不贴了,自己手打一下吧

解决方案

相似回答