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中参数和引用的问题建议看看下面的博文:
public static void main(String[] args) {
//定义输入对象s
Scanner s=new Scanner(System.in);
System.out.print("输入第一个数的值:\t");
int number1=s.nextInt();
System.out.print("\n输入第二个数的值:\t");
int number2=s.nextInt();
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//输出交换前内容
//定义中间变量temp进行交换(你小学老师问你:现在有红墨水1瓶、蓝墨水1瓶,要你将红、蓝两种墨水交换瓶子,你是不是要找个空瓶子来处理)
int temp=number1;
number1=number2;
number2=temp;
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//输出交后内容
}
JAVA是面向对象的语言,没有象c中指针这样危险的东西,要编这种简单数学问题你最好用c,Pascal或者VB这样的语言,用面向对象语言解决有点大材小用,c你总会把,用c解决
#include stdio.h
void changeXy(int *x,int *y){
int *temp;
temp = x ;
x=y;
y=temp;
}
main(){
int a;
int b;
a=10;
b=8;
printf("输出互换前手中的纸牌:");
printf("左手中的纸牌:%d",a);
printf("右手中的纸牌:%d",b);
printf("\n");
changeXy(a,b);
printf("输出互换后手中的纸牌:");
printf("左手中的纸牌:%d",a);
printf("右手中的纸牌:%d",b);
}
也可以用java解决:
public class change{
private static int a,b;
public static void main(String args[]){
a=10;
b=8;
System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
System.out.println();
changeXy();
System.out.println("输出互换后手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
}
public static void changeXy(){
int temp;
temp = a ;
a=b;
b=temp;
}
}
JAVA对两个整数变量的值进行互换(不需要第三方变量)的程序如下:
方法一(加减法):
a = a + b;
b = a - b;
a = a - b;
方法二(异或运算):
a = a ^ b;
b = a ^ b;
a = a ^ b;
代码实现如下:
public class Demo {
public static void main(String [] args){
int m=2,n=3;
//method_1(m, n);
method_2(m, n);
}
/**
* 使用异或^
*明白一个数,如果异或同一个数两次,那么就等于本身
*/
private static void method_3(int m, int n) {
m=m^n;
n=m^n;
m=m^n;
System.out.println("m="+m+"\tn="+n);
}
/**
* 使用自身的数组,加减运算
*/
private static void method_2(int m, int n) {
m=m+n;
n=m-n;
m=m-n;
System.out.println("m="+m+"\tn="+n);
}
}
这么写就没错误了。
你要是用swap方法,应该多个赋值
把swap的结果,赋值给xy