java中两个值互换
2024-10-15 14:38:43
两个值互换有以下三种方式:
- 使用临时变量(此种方法便于理解)
x = 10;
y = 20;
//begin
int temp = x;
x = y;
y = temp;
//end;
//此时x = 20; y = 10; - 利用加减来实现(此种方法只适应于数值比较小的情况,如果数值较大,会超界)
x = 10;
y = 20;
//begin
x = x + y ;
y = x - y;
x = x - y;
//end;
//此时x = 20; y = 10; - 利用位运算实现(不用考虑数值大小问题)
x = 10;
y = 20;
//begin
x = x ^ y;
y = x ^ y;
x = x ^ y;
//end;
//此时x = 20; y = 10;
但是java中没有指针的概念,如果要把两值互换封装起来的话,那么形参只能是传入对象,不能直接传入数值,因为传入数值不能改变原来的值;也没有C#中的ref关键字。
- 直接在程序中写
- 函数调用,这种方法可能比较麻烦,没有直接用上面的方便,但是也是一种思路;
package com.test;
public class test1 {
public static void main(String[] args) {
int x = 10;
int y = 20;
int[] tempArr = swap(x,y);//定义数组接收返回值
x = tempArr[0];
y = tempArr[1];
System.out.println("x="+x+";y="+y);
}
public static int[] swap(int x, int y)//定义函数换值,返回数组
{
int[] arr = new int [2];
x = x ^ y;
y = x ^ y;
x = x ^ y;
arr[0] = x;
arr[1] = y;
return arr; }
}
最新文章
- Url路径重写的原理
- ECMAScript5中数组的方法
- msbuild
- ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 175人阅读 评论(0) 收藏
- php session详解
- sql语句与 数据库
- 目标检测的图像特征提取之(一)HOG特征(转载)
- 将php配置为服务
- 问题:LVM lvextend增加空间后,df查看还是原来空间
- JavaScript元素的创建、添加、删除
- mysql登录报错 ERROR 1045 (28000)
- ios_swift开发资源整理
- python创建系统用户和用户组
- Android-Throwable: A WebView method was called on thread 'JavaBridge'.
- google浏览器window.onbeforeunload方法兼容问题
- Mac安装mysql8.0.12
- django模型创建
- 最近遇到的几个问题,关于Unity脚本在Inspector视图中前面没有勾选框的问题
- Codeforces Round #489 (Div. 2)
- 学习-短信的上行(MO)和下行(MT)详解