编译运行实现两个变量值交换的方法-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

编译运行实现两个变量值交换的方法

简介:

1.利用异或运行的方法

在上面已经对数据进行定义的前提下,可以通过代码

1
2
3
4
A = A ^ B;// 执行变量互换
        B = B ^ A;
        A = A ^ B;
        System.out.println("A=" + A + "\tB=" + B);

用异或来实现A,B两数值的交换;

从输入数值到交换数值,详细代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.lixiyu;
import java.util.Scanner;
public class VariableExchange {
public static void main(String[] args){
    Scanner A=new Scanner(System.in);
    System.out.println("请输入变量A的值:");
    Long line=A.nextLong();
    Scanner B=new Scanner(System.in);
    System.out.println("请输入变量B的值:");
    Long line1=B.nextLong();
    System.out.println("A="+line);
    System.out.println("B="+line1);
    System.out.println("执行数值转换");
    line=line^line1;
    line1=line1^line;
    line=line^line1;
    System.out.println("A="+line+"\tB="+line1);
}
}

注意这种方法适合数值型,用Long line=A.nextLong()而不是String


2.通过定义一个第三方变量进行交换的方法

利用赋值的方法原理实现

比如要实现A、B互换:定义一个变量C,C=A;A=B;B=C;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.lixiyu;
import java.util.Scanner;
public class VariableExchange {
public static void main(String[] args){
    String line2;
    Scanner A=new Scanner(System.in);
    System.out.println("请输入变量A的值:");
    String line=A.nextLine();
    Scanner B=new Scanner(System.in);
    System.out.println("请输入变量B的值:");
    String line1=B.nextLine();
    System.out.println("A="+line);
    System.out.println("B="+line1);
    System.out.println("执行转换");
    line2=line;
    line=line1;
    line1=line2;
    System.out.println("A="+line+"\tB="+line1);
}
}

编译运行成功(这种方法不仅适合Long型也适合其他型,如String等)

还有其它方法以后碰到再补充



本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1302809,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章
最新文章
相关文章