java中两个值互换
两个值互换有以下三种方式:
- 使用临时变量(此种方法便于理解)
1 x = 10; 2 y = 20; 3 //begin 4 int temp = x; 5 x = y; 6 y = temp; 7 //end; 8 //此时x = 20; y = 10;
- 利用加减来实现(此种方法只适应于数值比较小的情况,如果数值较大,会超界)
1 x = 10; 2 y = 20; 3 //begin 4 x = x + y ; 5 y = x - y; 6 x = x - y; 7 //end; 8 //此时x = 20; y = 10;
- 利用位运算实现(不用考虑数值大小问题)
1 x = 10; 2 y = 20; 3 //begin 4 x = x ^ y; 5 y = x ^ y; 6 x = x ^ y; 7 //end; 8 //此时x = 20; y = 10;
但是java中没有指针的概念,如果要把两值互换封装起来的话,那么形参只能是传入对象,不能直接传入数值,因为传入数值不能改变原来的值;也没有C#中的ref关键字。
- 直接在程序中写
- 函数调用,这种方法可能比较麻烦,没有直接用上面的方便,但是也是一种思路;
1 package com.test; 2 public class test1 { 3 public static void main(String[] args) { 4 int x = 10; 5 int y = 20; 6 int[] tempArr = swap(x,y);//定义数组接收返回值 7 x = tempArr[0]; 8 y = tempArr[1]; 9 System.out.println("x="+x+";y="+y); 10 } 11 public static int[] swap(int x, int y)//定义函数换值,返回数组 12 { 13 int[] arr = new int [2]; 14 x = x ^ y; 15 y = x ^ y; 16 x = x ^ y; 17 arr[0] = x; 18 arr[1] = y; 19 return arr; 20 21 } 22 }
分类:
04.【JAVA】 基础
标签:
java
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具