㈠ 求教:java 语言是否可以用函数实现两个数的交换
Java的函数只能有一个返回值,如果只是交换两个数可以用数组存储,通过下标来获取。
public double[] change(double a,double b){
return new double[]{b,a};
}
㈡ JAVA 两数数值交换
^=是按位异或操作(相异为真 相同为假)
a=a^b;
假设a=4 二进制表示为 0100
b=10 二进制表示为 1010
a=a^b = 1110 0x0E 14
a= 1110 b=1010
b= b^a =0100 0x04 4
a= 1110 b=0100
a=a^b = 1010 0x0A 10
a= 1010 b=0100
所以及交换了
原理就是加减法
如下
//a=4 b=10
a+=b ;
//a=14 b=10
b-=a;
//a=14 b=4
a-=b;
//a=10 b=4
完成交换
㈢ java 两个数交换
这样做是肯定没有换的。在JAVA里面没有指针的概念,你传过去的只不过一个引用而已,他不会改变原有的值。你把a,b定义成全局变量是能够改变的。先弄清在JAVA中参数的传递到底传的是什么,这样你会比较容易理解
㈣ 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很简单的问题,两个数交换。。
问题很简单,作为参数传入的值它代表的意义和作用域已经发生改变。你改变的是参数中的两个x,y的值,而你打印的并非这两个值。相当于swap只是引用x,y的值给另外两个变量在函数中进行交换值换算,并不是操作本身的x,y对象,实际它们的值并未发生任何的改变。
㈥ 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 ", a, b);
a = a^b;
b = a^b;
a = a^b;
System.out.printf("交换后:a = %d, b = %d", a, b);
}
}
(6)java两个数交换扩展阅读:
值传递就是在方法调用的时候,实参是将自己的一份拷贝赋给形参,在方法内,对该参数值的修改不影响原来实参。
引用传递是在方法调用的时候,实参将自己的地址传递给形参,此时方法内对该参数值的改变,就是对该实参的实际操作。
在java中只有一种传递方式,那就是值传递.可能比较让人迷惑的就是java中的对象传递时,对形参的改变依然会意向到该对象的内容。
㈦ java如何交换a和b的值
是两个变量的值吗 用一个中间变量temp就行了 temp=a a=b b=temp
㈧ java如何实现2个数之间互换
这只能找一个中间变量,例如
int a = 10;
int b = 8;
中间变量:
int temp;
转换过程:
temp = a;
a = b;
b = temp;
就可以了
㈨ 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!输入两个数并交换!谢谢!
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);//输出交后内容
}