重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用异或(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中的对象传递时,对形参的改变依然会意向到该对象的内容。
参考资料:
百度百科——参数传递
用第三个变量来存储。
就是再申请一个变量。
int
num1=10;
int
num2=8;
int
temp=0
temp=num1;//将num1的值赋给中间变量temp
num1=num2;//将num2的值赋给num1;
num2=temp;//将temp的值赋给num2,num1和num2的值就互换了。
这个方法是最通用的,记住这个就行了。
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);//输出交后内容
}
基本类型无法按引用传递,详见『ヤ;搁[浅灬メ』的解释,我只提供一种实现方案,一定要用函数调用来实现的话,可以传个数组过去
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]);
}
}