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

开发者社区> 科技小先锋> 正文

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

简介:
+关注继续查看

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,如需转载请自行联系原作者


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

相关文章
HSF/Dubbo序列化时的LocalDateTime, Instant的性能问题
### 来源 在对Dubbo新版本做性能压测时,无意中发现对用例中某个TO(Transfer Object)类的一属性字段稍作修改,由Date变成LocalDateTime,结果是吞吐量由近5w变成了2w,RT由9ms升指90ms。
2331 0
mac vagrant 创建 lnmp 开发环境
建议使用迅雷下载,浏览器下载可能太慢。123实操笔记mac homebrew 安装 vagrant$ brew cask install vagrantCloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'.
590 0
独家揭秘:阿里小程序的一云多端!看这篇就够了!
阿里巴巴小程序一云多端的整体战略,以及阿里小程序后续为开发者提供的云服务(云应用、云开发等)、开发者工具链(IDE、插件、SDK等)、跨端框架能力说明。同时结合繁星计划后续提供给开发者的扶持和ISV的权益体系做一个整体的介绍。
27364 0
CDN的HTTPS配置及故障排除
相较于HTTP协议来说,HTTPS协议在网络链路中传输更具有安全可靠性,因为它通过SSL证书在链路中间对我们七层的网络包做了加密,进而防止了一些恶意的内容劫持。针对于这种场景,阿里云CDN也提供了相关的功能,可以支持客户端到CDN L1节点的HTTPS的协议。
1574 0
GDB 调试 Mysql 实战(一)源码编译安装
下载源码 git clone https://github.com/mysql/mysql-server.git cd mysql-server git checkout 5.7 编译安装 安装依赖 yum install -y cmake make gcc gcc-c++ ncurses-dev...
979 0
PostgreSQL 锁
锁的类型 /* NoLock is not a lock mode, but a flag value meaning "don't get a lock" */ #define NoLock 0 #define AccessS...
1140 0
4571
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载