csschn

Android,你等等我。。。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

java中两个值互换

两个值互换有以下三种方式:

  1. 使用临时变量(此种方法便于理解)
    复制代码
    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;
    View Code
    复制代码
  2. 利用加减来实现(此种方法只适应于数值比较小的情况,如果数值较大,会超界)
    复制代码
    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;
    View Code 
    复制代码
  3. 利用位运算实现(不用考虑数值大小问题)
    复制代码
    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;
    View Code
    复制代码

     

但是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 }
    View Code
    复制代码

     

posted on   csschn  阅读(701)  评论(0编辑  收藏  举报

编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
点击右上角即可分享
微信分享提示