栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Java] 运算符——交换两个数的值多种理解方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Java] 运算符——交换两个数的值多种理解方法

练习一:交换两个数的值 方法一:设置中间变量

package zzx.com;

import java.util.Scanner;

public class yyds {
    public static void main(String[] args) {
        Scanner in =  new Scanner(System.in);
        System.out.println("现在进行数据交换n"+"请输入第一个数值:");
        int x = in.nextInt();
        System.out.println("请输入第二个数值:");
        int y = in.nextInt();
        System.out.println("交换前数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        int temp = x;
        x = y;
        y = temp;
        System.out.println("交换后数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        }
    }

方法二:按需分配法

①理解方法一

 ②理解方法二

package zzx.com;

import java.util.Scanner;

public class yyds {
    public static void main(String[] args) {
        Scanner in =  new Scanner(System.in);
        System.out.println("现在进行数据交换n"+"请输入第一个数值:");
        int x = in.nextInt();
        System.out.println("请输入第二个数值:");
        int y = in.nextInt();
        System.out.println("交换前数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        x = x + y;//将原x与原y混合
        y = x - y;//将后来的x中的原x挑到原y中
        x = x - y;//将后来的x中的原x(即后来的y)删掉
        System.out.println("交换后数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        }
    }

③理解方法三:异或法

运用到的知识:m = (n^m)^ n;n = (n ^ m)^ m

package zzx.com;

import java.util.Scanner;

public class yyds {
    public static void main(String[] args) {
        Scanner in =  new Scanner(System.in);
        System.out.println("现在进行数据交换n"+"请输入第一个数值:");
        int x = in.nextInt();
        System.out.println("请输入第二个数值:");
        int y = in.nextInt();
        System.out.println("交换前数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        x = x ^ y;
        y = x ^ y;//相当于 y = (x ^ y) ^ y;此时y为x的值
        x = x ^ y;//相当于 x = (x ^ y) ^ y = (x ^ y) ^ x;
        System.out.println("交换后数值为:n"+"第一个变量为:" + x + "n" + "第二个变量为:" + y);
        }
    }

经常使用的是方法一,因为方法二有弊端,方法三中的^异或不经常使用:

         方法二的弊端:在第一步混合的时候可能会超出变量类型的最大范围;只适用于数值类型;

         方法三的弊端:只适用于数值类型

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849982.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号