欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中不用第三個變量來互換兩個變量的值

 更新時間:2021年10月18日 10:53:57   作者:小年糕糕  
在程序運行期間,隨時可能產生一些臨時數據,應用程序會將這些數據保存在一些內存單元中,每個內存單元都用一個標識符來標識。這些內存單元被稱為變量,定義的標識符就是變量名,內存單元中存儲的數據就是變量的值

我們先看看使用第三變量的方法。(開胃菜)

class Swap{
    public static void main(String[] args){
        int a = 3;
        int b = 5;

        int c; 
        c = a; //把a的值先存到c
        a = b; //把b存給a
        b = c; //把存在c的值倒賦給b

        System.out.println("a="+a); //a==5
        System.out.println("b="+b); //b==3
    }
}

下面是運行結果。

在這里插入圖片描述

在這個方法中,我們引用了第三變量c,用c來輔助a與b的交換。

下面才是這次的正餐。

我們將介紹兩種方法,準備好了嗎?

(1)運用加法的性質來實現兩個數的互換
那么我們先來展示代碼

import java.util.Scanner;
class VariableExchange{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);          //創(chuàng)建掃描器
        System.out.println("請輸入變量a的值");
        long a = scan.nextLong();                       //接收第1個變量值
        System.out.println("請輸入變量b的值");
        long b = scan.nextLong();                       //接收第2個變量值
        System.out.println("a=" + a + "\tb=" + b );
        System.out.println("執(zhí)行變量互換...");
        a = a + b; 
		b = a - b;
		a = a - b;
        System.out.println("a=" + a + "\tb=" + b );
    }
}

在這里插入圖片描述

這種方法還是比較容易想到的,只是用到了加法規(guī)律,用坐標軸做輔助,還是很容易理解的。
這種方法在求和時,如果兩個數的和超過了使用的數據范圍,答案會出現錯誤。

用兩個數相乘也可以實現兩個數的互換,原理基本相同,在這里也就不再贅述。

(2)運用異或運算實現兩個數的互換(硬菜)

首先我們需要知道,在異或運算時,會先將我們輸入的數字轉化成二進制,然后進行同位判斷。
若同為0或同為1,則該位運算結果為 0
若一個為0,另一個為1,則該位運算結果為 1
換成一句人話:同位上相同為0,不同為 1
清楚了這個運算規(guī)律,那么我們來展示代碼:

import java.util.Scanner;
class VariableExchange{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);          //創(chuàng)建掃描器
        System.out.println("請輸入變量a的值");
        long a = scan.nextLong();                       //接收第1個變量值
        System.out.println("請輸入變量b的值");
        long b = scan.nextLong();                       //接收第2個變量值
        System.out.println("a=" + a + "\tb=" + b );
        System.out.println("執(zhí)行變量互換...");
        a = a ^ b;                                      //執(zhí)行變量互換
        b = b ^ a;                                      //執(zhí)行變量互換
        a = a ^ b;                                      //執(zhí)行變量互換
        System.out.println("a=" + a + "\tb=" + b );
    }
}

在這里插入圖片描述

如上,我們通過異或運算實現了不通過第三方變量交換兩個數的值。

原理:在異或運算中,一個數異或另一個數(數值相等)兩次,結果等于他的初始值

我們再用實例具體演示一遍

請?zhí)砑訄D片描述

在這里我們定義a和b用來表示需要互換的兩個數

我們運用性質: 一個數異或另一個數(數值相等)兩次,結果等于他的初始值

在上圖中第二步運算就行當于 a ^ b ^ b ,這個數值為17,我們把他賦值給了b
同理 第三步運算就相當于 b ^ a ^ a ^ b ^ b,這個數值為29,我們把他賦值給了a
這樣我們就實現了 a 和 b 互換。

到此這篇關于Java中不用第三個變量來互換兩個變量的值的文章就介紹到這了,更多相關Java 變量內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • spring?IOC容器管理必須知道的一些操作(基于XML方式)

    spring?IOC容器管理必須知道的一些操作(基于XML方式)

    Spring框架的核心是Spring容器,容器創(chuàng)建對象,將它們裝配在一起,配置它們并管理它們的完整生命周期,下面這篇文章主要給大家介紹了關于spring?IOC容器管理必須知道的一些操作,需要的朋友可以參考下
    2022-03-03
  • spring與mybatis整合配置文件

    spring與mybatis整合配置文件

    本文通過實例代碼給大家介紹了spring與mybatis整合配置文件的方法,需要的朋友參考下吧
    2017-09-09
  • java基礎javeSE程序邏輯控制語法

    java基礎javeSE程序邏輯控制語法

    主要講解Java中程序的邏輯控制語句包括 Java中的輸入輸出方式 順序結構循環(huán)結構等,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Spring Boot Gradle發(fā)布war到tomcat的方法示例

    Spring Boot Gradle發(fā)布war到tomcat的方法示例

    本篇文章主要介紹了Spring Boot Gradle發(fā)布war到tomcat的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 詳談Array和ArrayList的區(qū)別與聯系

    詳談Array和ArrayList的區(qū)別與聯系

    下面小編就為大家?guī)硪黄斦凙rray和ArrayList的區(qū)別與聯系。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 使用IntelliJ IDEA2020.2.2 x64 新建java項目并且輸出Hello World

    使用IntelliJ IDEA2020.2.2 x64 新建java項目并且輸出Hello World

    這篇文章主要介紹了使用IntelliJ IDEA2020.2.2 x64 新建java項目并且輸出Hello World,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 解決Mybatis?plus實體類屬性與表字段不一致的問題

    解決Mybatis?plus實體類屬性與表字段不一致的問題

    這篇文章主要介紹了Mybatis?plus實體類屬性與表字段不一致解決方法,文末給大家提到了Mybatis-plus中數據庫表名和表字段名的相關知識,需要的朋友可以參考下
    2022-07-07
  • Spring的事務機制實例代碼

    Spring的事務機制實例代碼

    這篇文章主要介紹了Spring的事務機制實例代碼,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • mybatis教程之延遲加載詳解

    mybatis教程之延遲加載詳解

    本篇文章主要介紹了mybatis教程之延遲加載詳解。詳細介紹了延遲加載的意義和用法實現,有興趣的可以了解一下
    2017-05-05
  • Java實現圖片切割功能

    Java實現圖片切割功能

    這篇文章主要為大家詳細介紹了Java實現圖片切割功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論