「java两个数交换」java实现两个数交换

博主:adminadmin 2023-01-15 17:42:07 452

本篇文章给大家谈谈java两个数交换,以及java实现两个数交换对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java 交换两个数的方法,不要直接写在main方法里的,是单独的方法。

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中参数和引用的问题建议看看下面的博文:

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进行两数交换时,如何不用中间量就交换?

方法有很多,这里举出两种常用的:

方法1:使用^操作来实现

int

x

=

10;

//用二进制表示:x=0b1010;

int

y

=

15;

//用二进制表示:x=0b1111;

System.out.println("x="+x+"

y="+y);

x

=

x^y;

//x^y=

0b1010^0b1111

=

0b0101

y

=

x^y;

//x^y=

0b0101^0b1111

=

0b1010

=10

x

=

x^y;

//x^y=

0b0101^0b1010

=

0b1111

=15

System.out.println("x="+x+"

y="+y);

方法2:使用+,-操作来实现

int

x

=

10;

int

y

=

15;

System.out.println("x="+x+"

y="+y);

x

=

x+y;

//x=

10+15=25

y

=

x-y;

//y=

25-15=10

x

=

x-y;

//x=

25-10=15

System.out.println("x="+x+"

y="+y);

结果:

x=10

y=15

x=15

y=10

早期为了减少中间变量对计算机内存的占用,采用中间的方法来交换数据。其实这种交换并不完美,如果交换的两个数都很大,可能会内存溢出。在现在的开发中建议使用中间值来交换数值。

交换两个数的值(用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 两个数的交换

public

class

change{

Integer

a;

Integer

b;

a=10;

b=8;

public

static

void

main(String

args[]){

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(Integer

x,integer

y){

Integer

temp=null;

temp=x;

x=y;

y=temp;

}

}

java两个数交换的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java实现两个数交换、java两个数交换的信息别忘了在本站进行查找喔。