首页 > 编程语言 >两个变量交换的四种方法(Java)

两个变量交换的四种方法(Java)

时间:2023-06-05 16:00:49浏览次数:49  
标签:10 Java 变量 int System static 15 四种


 对于两种变量的交换,我发现四种方法,下面我用Java来演示一下。

1.利用第三个变量交换数值,简单的方法。

(代码演示一下)

class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7          
 8         int temp = x;    //定义第三临时变量temp并提取x值
 9         x = y;        //把y的值赋给x
10         y = temp;      //然后把临时变量temp值赋给y
11         
12         System.out.println("x="+x+"y="+y);
13         
14     }
15     
16 }

两个变量交换的四种方法(Java)_System

两个变量交换的四种方法(Java)_System_02

 

  2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。

(代码演示一下)

class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8         x = x + y;        //x(15) = 5 + 10;
 9         y = x - y;        //y(5) = x(15) - 10;        
10         x = x - y;        //x(10) = x(15) - y(5)
11         System.out.println("x="+x+"y="+y);
12         
13     }
14     
15 }

两个变量交换的四种方法(Java)_System_03

两个变量交换的四种方法(Java)_System_04

 

3.利用位运算的方式进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围

(代码演示一下)

1 class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8                 x = x^y;
 9         y = x^y;  //y=(x^y)^y
10         x = x^y;  //x=(x^y)^x
11         System.out.println("x="+x+"y="+y);
12         
13     }
14     
15 }

两个变量交换的四种方法(Java)_变量交换_05

两个变量交换的四种方法(Java)_数据交换_06

 

4.最为简单的,在打印输出的时候直接交换变量

(代码演示一下)

class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8         System.out.println("x="+y+"y="+x); //直接在输出的时候交换
 9         
10     }
11     
12 }

两个变量交换的四种方法(Java)_System_07

两个变量交换的四种方法(Java)_System_08

 


标签:10,Java,变量,int,System,static,15,四种
From: https://blog.51cto.com/u_15975228/6416950

相关文章

  • java通过实体类生成数据库表 并生成注释
    java通过实体类生成数据库表并生成注释 方式一   使用A.C.Table A.C.Table是对Mybatis做的增强功能,实现了mybatis自动建表的能力官方地址:https://gitee.com/sunchenbin/mybatis-enhance文档地址:https://www.yuque.com/sunchenbin/actable/ag3y1y 项目结构 ......
  • Java体系面试题(2022)(三)
    全部试题及答案下载多线程&并发篇1、说说Java中实现多线程有几种方法创建线程的常用三种方式:1.继承Thread类2.实现Runnable接口3.实现Callable接口(JDK1.5>=)4.线程池方式创建通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Runnable接......
  • java基础语法02-面向对象编程
    1面向对象基础1.1方法1.2构造方法1.3方法重载1.4继承1.5多态1.6抽象类1.7接口1.8静态字段和静态方法1.9包1.10作用域1.11内部类1.12classpath和jar1.13class版本1.14模块2java核心类......
  • java实现:根据 map的value值获取key值
    /***根据map的value值获取key值*@parammap*@paramvalue*@return*/publicstaticStringgetKeyFromValue(Map<String,String>map,Stringvalue){StringmKey="";Set<String>keySet=......
  • Java表达式引擎
    执行效率在本地简单测试这几种表达式的执行时间,在频繁执行中mvel表现较好,以下数据仅供参考,未取平均值。次数ognlmvelspeljexlgroovy效率排序10次耗时(毫秒)677215164547jexl>ognl>mvel>spel>groovy100次耗时(毫秒)8377168801487mvel>jexl>ognl>spel>gr......
  • 【程序人生】Java Web 开发脚手架调研
    文章目录GiteeMostValueProject铭飞BootDoRuoYijeecg-bootrenren-fast调研时间2019.06.18GiteeMostValueProject铭飞/MCMS4.7.0bootdoruoyi3.4jeecg-bootrenren-fast托管仓库https://gitee.com/mingSoft/MCMShttps://gitee.com/lcg0124/bootdohttps://gitee.com/y_pro......
  • Java之基于注解的Excel导出
    数据库Excel导出操作代码过于冗长惨不忍睹,无法复用。【推荐使用阿里巴巴组件:关于Easyexcel|EasyExcel】目录第一步:自定义注解:第二步:实体类:第三步:解析工具类:第四步:使用:依赖:<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base<......
  • 【JAVA 8】 List 使用Lambda表达式操作对象字段进行升序、降序
    总结使用Lambda表达式轻松对集合进行排序1、需要排序的对象implementsComparable接口,并重写compareTo方法指明默认排序的字段2、使用java8的API轻松实现对List的排序代码中也涉及了一些java8的语法嘻嘻,对新语法我也不熟悉Mainpublicstaticvoidmain(String[]args){......
  • 【IDE】IntelliJ IDEA 插件之Alibaba Java Coding Guidelines - 阿里巴巴Java代码检测
    一、安装进入插件安装界面|-File |-Settings |-Plugins输入alibabainstallAlibabaJavaCodingGuidelines重启IDEA,开始使用二、使用编码规范扫描该插件在扫描代码后,将不符合《java开发手册》的代码按Blocker/Critical/Major三个等级进行显示在Snoar中对代码规则有五......
  • 【JAVA】集合、JUC包结构图
    发现Java基础还是不踏实,需要好好修炼一段时间,就从下面的三张图开始学习吧,加油!一、集合框架二、JUC包三、Socket......