问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-25 15:38

我来回答

5个回答

热心网友 时间:2023-09-09 10:47

利用异或(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中的对象传递时,对形参的改变依然会意向到该对象的内容。 

参考资料:

百度百科——参数传递

热心网友 时间:2023-09-09 10:48

swap( int x, int y)实现对x和y值的交换 , 但从函数定义情况看,只是对形参进行了数据修改,不会影响到实参数据。因此,你的结果不会变化 , 仍然是a[0]= 1 a[1]= 2

正确方法:

int a=1,b=0;

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

int tmp;

tmp=a;

a=b;

b=tmp;

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

扩展资料: 

对于下述程序,试分析用传值、传地址、传数组方法传递参数时所得的打印结果。

PROGRAM SS(input,output);

VAR

A,B:integer;

PROCEDURE P(x,y,z:integer);

begin y:=y+1;z:=z+x;

end;

BEGIN

A:=2;b:=3;

P(A+B,A,A);

writeln (‘A=‘,A);

END

解答

(1)传值:把实参的值计算出来传给形参。

在调用过程P时,形参x=5;y=2;z=2

出过程P时,形参x=5;y=3;z=7

这并不把结果回送到主程序,所以结果为A=2

(2)传地址:实参计算出结果,把地址送形参。

设变量T=A+B(结果为5)。执行时把T、A、A的

地址(设为addr1,addr2,addr2)送给形参:

x=daar1,y=addr2,z=addr2。

T的地址addr1即x→T(5)

A的地址addr2即y→A(2)

A的地址addr2即z→A(2)

执行过程P即为:①y↑:=y↑+1;②z↑:=z↑+x↑

所以,①为A:=A+1=3

②为A:=A+T=8。 因此,最后A=8.

(3)传数组:相当于执行 A:=2;B:=3; A:=A+1;A:=A+(A+B)

writeln(‘A=‘,A);

所以,结果为A=9。

参考资料:百度百科-参数传递

参考资料:百度百科- Java(计算机编程语言)

热心网友 时间:2023-09-09 10:48

因为java传递的是两个简单类型(int型),所以是传值,也就是把值给了num1和num2,以后无论num1和num2怎么变怎么换,跟a[0]和a[1]都无任何关系了,a[0]a[1]不会有任何变化。
要想使a[0]和a[1]也跟着改变,就必须要传引用,java里规定传递简单类型都是传值,传递对象才是引用传递,你这个代码可以改变一下(只传两个值过去是绝对不可能的):

public class TestLoopTryCatch {
public static void main(String args[]) {
int [] a={1,2};

swap(a);
System.out.println(a[0]);
System.out.println(a[1]);

}

public static void swap(int a[]) {
int temp;
temp= a[0];
a[0] = a[1];
a[1] = temp;

}

}

热心网友 时间:2023-09-09 10:49

因为你的参数是INT 类型 所以传参的时候传的是值。不会影响a。
直接对a进行 操作:
int [] a={1,2};
swap(a,0,1);
public static void swap(int[] args,index1,index2) {
int temp = 0 ;
temp= args[index1];
args[index1] = args[index2];
args[index2] = temp;
}

建议你看下这个:
http://blog.sina.com.cn/s/blog_4b622a8e0100c1bo.html

热心网友 时间:2023-09-09 10:49

int a=1,b=0;
System.out.println("a=" + a + ";b=" + b);
int tmp;
tmp=a;
a=b;
b=tmp;
System.out.println("a=" + a + ";b=" + b);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
快手极速版怎么绑定不了微信? 本班数学期中测试的优秀率是50%是什么意思 期中测试中全班56名同学有42人达到了优秀标准熊启中是稠剂的优秀率是... 期中测试中,全班56名同学,有49跟达到了优秀标准,求期中测试的优秀率是... 东瓜怎样吃,是减肥的最佳效果呢? 木耳冬瓜瘦肉汤怎么做味道极佳? 黑木耳冬瓜肉末汤美食做法 和前男友分手一年多了,也没联系过,怎么昨晚突然梦到他,而且感觉好真实... 面对分手两年多后的前男友,我应该怎么办 ...了微信但不说话,相亲女加了微信却不聊天,这是什么心态?_百... 请问24小时加盟便利店如何购买保险 java 数据交换方法 店铺怎么保险?保费大概多少? java的数据交换 店铺的保险金是什么 淘宝现在是不是没有退运保险了,我买东西都找不到退运保险在哪里了 Java 两个项目之间如何传数据 因datatraveler2.0的问题用不了U盘怎么办 请问可以给店铺买保险吗?保财产损失盗抢方面的,哪家公司可以买? Java 中实例化后的对象间如何交互传递数据? 针对店铺有什么保险 java程序中,怎么互换2个变量的值? 欢天喜地七仙女的灵石全图谁知道哪有 店铺财产保险 java 如何实现两个程序的数据传递. 泰戈尔的诗 使生如夏花之绚烂,死如秋叶之静美 就这一句? 店铺怎么保险?保费大概多少 java进程和另外一个java进程交换数据,可用什么方法? 如果是java和C++进程交换数据,又可以用什么方法? 求张图 春丽与不知火舞同人 哪里有疫情门店保险 店内上保险,都有哪些 java进行两数交换时,如何不用中间量就交换? php程序与java程序之间做数据交互,怎么做 Java中实现类交换的方法 如何在Java中实现交换两个变量值的方法 java哪些方式可以与异构系统交换数据 word文档怎么解除密码 word文档解除密码 华为手环在开启导航模式时能接电话吗? 苹果6s手机用耳机时突然有很响的刺啦声是怎么回事? 苹果耳机耳机有吱吱响声,但是有声音。一弹就会好,这是什么情况? 苹果耳机插上,里面就乌拉乌拉响怎么回事? iphone5的耳机晃动起来里面会有响声是怎么回事 苹果手机插入耳机有滋滋声音是什么原因? 苹果耳机单边响怎么办 为什么苹果耳机仓会响 iPhone7耳机有噪音是怎么回事 新买的苹果6耳机沙沙的响 苹果11耳机吱吱响? 春日的寓意