java 两个数交换

来源:百度知道 编辑:UC知道 时间:2024/05/28 20:13:53
public class change{

public static void main(String args[]){
int a;
int b;
a=10;
b=8;

System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);
System.out.println();
changeXy(a,b); /*为什么在调用changeXy()方法后,a和b的值没有发生交换*/
System.out.println("输出互换后手中的纸牌:");
System.out.println("左手中的纸牌:"+a);
System.out.println("右手中的纸牌:"+b);

}

public static void changeXy(int x,int y){
int temp;
temp = x ;
x=y;
y=temp;

}
}

这样做是肯定没有换的。在JAVA里面没有指针的概念,你传过去的只不过一个引用而已,他不会改变原有的值。你把a,b定义成全局变量是能够改变的。先弄清在JAVA中参数的传递到底传的是什么,这样你会比较容易理解

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);
Syst