Java代码实现值交换,java交换数值

如何在Java中实现交换两个变量值的方法

public class Demo {

成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为潮安企业提供专业的成都网站设计、网站制作潮安网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

public static void main(String[] args) {

//调用这个静态方法传递两个int 型的值就是了。

exchange(2, 6);

}

public static void exchange(int a, int b) {

int temp = 0;

temp = a;

a = b;

b = temp;

System.out.println("a=" + a);

System.out.println("b=" + b);

}

}

java 交换值

1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没用改变。

2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。

因此在change方法中交换x,y是成功的,但是不会影响到static x ,y的值,在change方法中输出是可以得到交换成功的x,y,因为它们都是基本类型。可以通过一个int[]的返回值来得到交换后的数值。

简单点说

1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的

2、在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。

java程序中,怎么互换2个变量的值?

用第三个变量来存储。

就是再申请一个变量。

int

num1=10;

int

num2=8;

int

temp=0

temp=num1;//将num1的值赋给中间变量temp

num1=num2;//将num2的值赋给num1;

num2=temp;//将temp的值赋给num2,num1和num2的值就互换了。

这个方法是最通用的,记住这个就行了。

用JAVA写“对两个整数变量的值进行互换(不需要第三方变量)”程序

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

}

}

交换两个数的值(用JAVA编写)

基本类型无法按引用传递,详见『ヤ;搁[浅灬メ』的解释,我只提供一种实现方案,一定要用函数调用来实现的话,可以传个数组过去

import java.io.*;

public class Compare

{

public static void change(int[] a) throws Exception

{

int temp=0;

temp=a[0];a[0]=a[1];a[1]=temp;

}

public static void main(String args[]) throws Exception

{

int[] a = new int[2];

System.out.println("输入a:");

InputStreamReader inreader=new InputStreamReader(System.in);

BufferedReader breader=new BufferedReader(inreader);

a[0]=Integer.parseInt(breader.readLine());

System.out.println("输入b:");

a[1]=Integer.parseInt(breader.readLine());

System.out.println("交换前a="+a[0]+" 交换前b="+a[1]);

change(a);

System.out.println("交换后a="+a[0]+" 交换后b="+a[1]);

}

}

java如何实现2个数之间互换

利用异或(a^b)^b 等于a,进行交互,不需要设置临时变量也不会超范围。代码如下:

import java.util.Scanner;

public class woo {

public static void main(String args[]) {

Scanner scan =new Scanner(System.in);

System.out.println("输入两个数a, b");

int a = scan.nextByte();

int b = scan.nextByte();

System.out.printf("交换前:a = %d, b = %d\n", a, b);

a = a^b;

b = a^b;

a = a^b;

System.out.printf("交换后:a = %d, b = %d", a, b);

}

}

扩展资料:

值传递就是在方法调用的时候,实参是将自己的一份拷贝赋给形参,在方法内,对该参数值的修改不影响原来实参。

引用传递是在方法调用的时候,实参将自己的地址传递给形参,此时方法内对该参数值的改变,就是对该实参的实际操作。

在java中只有一种传递方式,那就是值传递.可能比较让人迷惑的就是java中的对象传递时,对形参的改变依然会意向到该对象的内容。

参考资料:

百度百科——参数传递


本文名称:Java代码实现值交换,java交换数值
当前地址:http://scjbc.cn/article/dssppdp.html

其他资讯