【新手求教】 java 想交换两个数的值,用函数该怎么写?
publicstaticvoidmain(String[]args){intx=1;inty=2;swap(x,y);System.out.println(x,"",y)...
public static void main(String[] args) {
int x=1;
int y=2;
swap(x,y);
System.out.println(x," ",y)
}
public static void swap(int a,int b)
{
int tmp=a;
a=b;
b=tmp;
}
我是这么写的,但是运算结果是没有交换,xy的值传入swap函数了,形参ab也确实交换了,但是交换后的结果没有传回xy,求大侠指明swap函数应该怎么写..(我知道可以把交换过程写到主函数里...)
自己用返回数组的方案解决了:
public static void main(String[] args) {
int x=1;
int y=2;
int array[]=swap(x, y);
System.out.println(array[0]+" "+array[1]);
}
public static int[] swap(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
return new int[]{a,b};
} 展开
int x=1;
int y=2;
swap(x,y);
System.out.println(x," ",y)
}
public static void swap(int a,int b)
{
int tmp=a;
a=b;
b=tmp;
}
我是这么写的,但是运算结果是没有交换,xy的值传入swap函数了,形参ab也确实交换了,但是交换后的结果没有传回xy,求大侠指明swap函数应该怎么写..(我知道可以把交换过程写到主函数里...)
自己用返回数组的方案解决了:
public static void main(String[] args) {
int x=1;
int y=2;
int array[]=swap(x, y);
System.out.println(array[0]+" "+array[1]);
}
public static int[] swap(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
return new int[]{a,b};
} 展开
更多追问追答
追问
= =|||,我就是不想把交换过程写在主函数里啊...我还能不知道...如果后面其他语句也用到交换...重新再写觉得有点麻烦 所以想知道用函数,也就是方法该如何实现..
追答
你这样弄
主函数 建立 两个静态变量。
public static int TEMPA =0;
public static int TEMPB = 0;
然后写swap函数
public void swap (TEMPA,TEMPB)
函数就跟你写的一样。
每次使用前,把 x y 赋值给静态变量
TEMPA = X;
TEMPY = Y;
swap之后
取出静态变量的值
x = TEMPA;
Y= TEMPB;
展开全部
哥们。。。你这个改变的是swap函数中的a和b。但是改变不了在主函数里面定义的a和b。
一:你可以把x和y定义成全局变量试试。
二:你如果想要改变的话,也可以在swap函数中return a 和b的值。。。
一:你可以把x和y定义成全局变量试试。
二:你如果想要改变的话,也可以在swap函数中return a 和b的值。。。
追问
如果定义成全局变量就没有单独写一个swap函数的必要了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Demo {
public static void main(String[] args) {
int a=1;
int b=3;
jianohuan(a,b);
// System.out.println();
}
public static void jianohuan(int a, int b) {
int x;
x=a;
a=b;
b=x;
System.out.println("a="+a+" "+"b="+b);
}
}
public static void main(String[] args) {
int a=1;
int b=3;
jianohuan(a,b);
// System.out.println();
}
public static void jianohuan(int a, int b) {
int x;
x=a;
a=b;
b=x;
System.out.println("a="+a+" "+"b="+b);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询