「java两个数交换」java实现两个数交换
本篇文章给大家谈谈java两个数交换,以及java实现两个数交换对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java 交换两个数的方法,不要直接写在main方法里的,是单独的方法。
- 2、java!输入两个数并交换!谢谢!
- 3、java进行两数交换时,如何不用中间量就交换?
- 4、交换两个数的值(用JAVA编写)
- 5、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两个数交换的信息别忘了在本站进行查找喔。