一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中不用第三個變量來互換兩個變量的值

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

2022-02-22 00:42小年糕糕 Java教程

在程序運行期間,隨時可能產生一些臨時數據,應用程序會將這些數據保存在一些內存單元中,每個內存單元都用一個標識符來標識。這些內存單元被稱為變量,定義的標識符就是變量名,內存單元中存儲的數據就是變量的值

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

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
  }
}

下面是運行結果。

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

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

下面才是這次的正餐。

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

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

import java.util.Scanner;
class VariableExchange{
  public static void main(String[] args){
      Scanner scan = new Scanner(System.in);          //創建掃描器
      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("執行變量互換...");
      a = a + b; 
		b = a - b;
		a = a - b;
      System.out.println("a=" + a + "\tb=" + b );
  }
}

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

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

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

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

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

import java.util.Scanner;
class VariableExchange{
  public static void main(String[] args){
      Scanner scan = new Scanner(System.in);          //創建掃描器
      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("執行變量互換...");
      a = a ^ b;                                      //執行變量互換
      b = b ^ a;                                      //執行變量互換
      a = a ^ b;                                      //執行變量互換
      System.out.println("a=" + a + "\tb=" + b );
  }
}

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

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

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

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

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

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

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

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

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

原文鏈接:https://blog.csdn.net/weixin_54805744/article/details/120809599

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91在线精品国产丝袜超清 | 精品欧美男同同性videos | 8x8拨擦拨擦华人免费 | 男生同性视频twink在线 | 亚洲精品久久久久久婷婷 | 被巨大黑人的翻白眼 | 美女胸又大又黄又www小说 | 全肉一女n男np高h双龙养成 | 亚洲大尺码| 公交车揉捏大乳呻吟喘娇 | 久久视频这里只精品99热在线观看 | 草草影院免费 | 描写细腻的高h肉 | 黑人操日本妞 | 小便japanesewctv| 亚洲第一网色综合久久 | yellow字幕网在线zmzz91 | 亚洲欧美国产精品完整版 | 好骚好紧 | 人人福利| 欧美久久一区二区三区 | 国产成人高清精品免费5388密 | 精品免费国产一区二区三区 | 国产精品久久久久这里只有精品 | 日本老妇和子乱视频 | 男同志与动人物zozotv | 欧美性xxxxxx爱| 成人在线视频在线观看 | 欧美一级视频在线 | xxx95日本老师xxx学生 | 亚洲精品老司机福利在线播放 | 国产一区二区不卡 | 四虎精品成人免费视频 | 天美网站传媒入口网址 | zol中关村在线官网 yy6080欧美三级理论 | 盲井在线 | 日本亚欧乱色视频在线观看 | 亚洲国产欧美目韩成人综合 | www.91麻豆 | 欧美在线欧美 | 日韩综合久久 |