最基本的问题,c语言交换2个数的函数是:
swap(int *a,int *b)
{}
那么java里面没有指针,怎么交换两个数,可以是
swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=a;
}
吧?
swap(int *a,int *b)
{}
那么java里面没有指针,怎么交换两个数,可以是
swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=a;
}
吧?
java里没办法像C一样交换2个数
如果你实在是想实现,只好写个辅助类
class X {
public: int a;
public: int b;
public X(int a, int b) {this.a = a; this.b = b;}
}...
void swap(X x) {
int t = x.a;
x.a = x.b;
x.b = t;
}int a = 1;
int b = 2;
X x = new X(a, b);
swap(x);
a = x.a;
b = x.b;……反正这事只能越搞越复杂
一般交换两个数通常都在数组中进行,还是输入数组,和两个index比较好。
//如果你要交换的话,就应该传对象进去.如:
//好像是这样!
class TestTwoInt
{
public static void main(String[] args)
{
myInt a=new myInt(10);
myInt b=new myInt(20);
swap(a,b);
System.out.println("a:"+a+" b:"+b);
}
public static void swap(myInt a,myInt b)
{
int temp=a.getInt();
a.setInt(b.getInt());
b.setInt(temp);
}
}
class myInt
{
int a;
myInt(int a)
{this.a=a;}
public int getInt(){return a;}
public void setInt(int b){a=b;}
myInt(myInt a)
{this.a=a.getInt();}
public String toString(){return ""+a;}
}
swap()
{
int t;
t=a;
a=b;
b=a;
}
public static void swap(int a,int b)
{ a=a+b;//
b=a-b;//
a=a-b;//不需要temp,也不需要辅助类 System.out.println("a="+a);
System.out.println("b="+b);
} public static void main(String[] args)
{
demo.swap(3,4);
}
}
退出demo.swap 后 还是没有交换
Java是传值引用的
public class Mugs
{
int m ,n;
public void Exchange(int a, int b)
{
m=b;
n=a;
}
public static void main(String agrs[])
{
Mugs ob = new Mugs();
int m = 44;
int n = 77;
System.out.println("before exchange: m = " + m + ", n = " + n);
ob.Exchange(m, n);
System.out.println("after exchange: m = " + ob.m + ", n = " + ob.n);
}
};
學習一下前人寫的。