Java運算符——通過示例學習Java編程(6)

来源:https://www.cnblogs.com/lea1941/archive/2019/05/09/10836555.html
-Advertisement-
Play Games

作者:CHAITANYA SINGH 來源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=17 運算符是表示動作的字元,例如+是表示加法的算術運算符。 Java中的運算符類型有七大類:基本算術運算符、賦值運算符、自增運算符和自減運算符、邏輯運算 ...


 

作者:CHAITANYA SINGH

來源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=17

運算符是表示動作的字元,例如+是表示加法的算術運算符。

Java中的運算符類型有七大類:基本算術運算符、賦值運算符、自增運算符和自減運算符、邏輯運算符、比較(關係)運算符、位運算符、三元運算符

1)基本算術運算符

基本算術運算符是:+, - ,*,/,%,其中+用於加法,-用於減法,*用於乘法,/用於除法,%用於計算兩個操作數相除後的餘數。

註意:%運算符操作後返回餘數,例如:10%5將返回0

算術運算符的例子

1 2 3 4 5 6 7 8 9 10 11 12 public class ArithmeticOperatorDemo {    public static void main(String args[]) {       int num1 = 100;       int num2 = 20;         System.out.println("num1 + num2: " + (num1 + num2) );       System.out.println("num1 - num2: " + (num1 - num2) );       System.out.println("num1 * num2: " + (num1 * num2) );        System.out.println("num1 / num2: " + (num1 / num2) );       System.out.println("num1 % num2: " + (num1 % num2) );    } }

輸出:

1 2 3 4 5 num1 + num2: 120 num1 - num2: 80 num1 * num2: 2000 num1 / num2: 5 num1 % num2: 0

2)賦值運算符

java中的賦值運算符是:=,+=, -=,*=,/=,%= 

num2 = num1將變數num1的值賦給變數。

num2 += num1等於num2 = num2 + num1

num2 -= num1等於num2 = num2 - num1

num2 *= num1等於num2 = num2 * num1

num2 /= num1等於num2 = num2 / num1

num2 %= num1等於num2 = num2 % num1

賦值運算符的示例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class AssignmentOperatorDemo {    public static void main(String args[]) {       int num1 = 10;       int num2 = 20;         num2 = num1;       System.out.println("= Output: "+num2);         num2 += num1;       System.out.println("+= Output: "+num2);                   num2 -= num1;       System.out.println("-= Output: "+num2);                   num2 *= num1;       System.out.println("*= Output: "+num2);                   num2 /= num1;       System.out.println("/= Output: "+num2);                   num2 %= num1;       System.out.println("%= Output: "+num2);    } }

輸出:

1 2 3 4 5 6 = Output: 10 += Output: 20 -= Output: 10 *= Output: 100 /= Output: 10 %= Output: 0

3)自增和自減運算符

++和 --

num++ 相當於num = num+1;

num-- 相當於num = num-1;

自增和自減運算符的示例

1 2 3 4 5 6 7 8 9 10 public class AutoOperatorDemo {    public static void main(String args[]){       int num1=100;       int num2=200;       num1++;       num2--;       System.out.println("num1++ is: "+num1);       System.out.println("num2-- is: "+num2);    } }

輸出:

1 2 num1++ is: 101 num2-- is: 199

4)邏輯運算符

邏輯運算符與二進位變數一起使用,它們主要用於條件語句和迴圈語句中的評估條件。

java中的邏輯運算符是:&&、|| 、!

假設我們有兩個布爾變數b1和b2。

如果b1和b2都為true,則b1 && b2將返回true,否則返回false。

如果b1和b2都為false,則b1 || b2將返回false,否則返回true。

!b1將返回b1的反面,這意味著如果b1為false則!b1返回true,如果b1為true則!b1返回false。

邏輯運算符的示例

1 2 3 4 5 6 7 8 9 10 public class LogicalOperatorDemo {    public static void main(String args[]) {       boolean b1 = true;       boolean b2 = false;         System.out.println("b1 && b2: " + (b1&&b2));       System.out.println("b1 || b2: " + (b1||b2));       System.out.println("!(b1 && b2): " + !(b1&&b2));    } }

輸出:

1 2 3 b1 && b2: false b1 || b2: true !(b1 && b2): true

5)比較(關係)運算符

我們在Java中有六個關係運算符:==,!=,>,<,>=,<=

如果左側和右側都相等,則==返回true

!=如果左側不等於運算符的右側,則返回true。

>如果左側大於右側,則返回true。

<如果左側小於右側,則返回true。

如果左側大於或等於右側,則==返回true。

如果左側小於或等於右側,則<=返回true。

關係運算符的示例

註意:這個例子使用的if-else語句是我們下一個教程要講解的內容,如果你發現它很難理解,那麼請先跳過去,等讀完了下一個教程後再返回來看這個例子。

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 public class RelationalOperatorDemo {    public static void main(String args[]) {       int num1 = 10;       int num2 = 50;       if (num1==num2) {          System.out.println("num1 and num2 are equal");       }       else{          System.out.println("num1 and num2 are not equal");       }         if( num1 != num2 ){          System.out.println("num1 and num2 are not equal");       }       else{          System.out.println("num1 and num2 are equal");       }         if( num1 > num2 ){          System.out.println("num1 is greater than num2");       }       else{          System.out.println("num1 is not greater than num2");       }         if( num1 >= num2 ){          System.out.println("num1 is greater than or equal to num2");       }       else{          System.out.println("num1 is less than num2");       }         if( num1 < num2 ){          System.out.println("num1 is less than num2");       }       else{          System.out.println("num1 is not less than num2");       }         if( num1 <= num2){          System.out.println("num1 is less than or equal to num2");       }       else{          System.out.println("num1 is greater than num2");       }    } }

輸出:

1 2 3 4 5 6 num1 and num2 are not equal num1 and num2 are not equal num1 is not greater than num2 num1 is less than num2 num1 is less than num2 num1 is less than or equal to num2

6)按位運算符

有六個按位運算符:&,|,^,〜,<<,>>

1 2 num1 = 11/* 等於00001011 */  num2 = 22; /* 等於00010110 */

按位運算符執行逐位處理。

num1和num2比較num1和num2的相應位,如果兩個位相等則生成1,否則返回0。在我們的例子中它將返回:2,這是00000010,因為在num1和num2的二進位形式中只有第二個最後的位匹配。

num1 | num2比較num1和num2的相應位,如果任一位為1,則生成1,否則返回0。在我們的例子中,它將返回31,即00011111

num1 ^ num2比較num1和num2的相應位,如果它們不相等則生成1,否則返回0。在我們的例子中它將返回29,相當於00011101

~num1是一個補碼運算符,它只是將位從0更改為1,將1更改為0。在我們的示例中,它將返回-12,其中8位等效於11110100

num1 << 2是左移位運算符,向左移動位,丟棄最左邊的位,並將最右邊的位賦值為0,在我們的例子中輸出為44,相當於00101100

註意:在下麵的示例中,我們在此移位運算符的右側提供2,這是位向左移動兩個位置的原因。我們可以更改此數字,並且位將按運算符右側指定的位數移動。同樣適用於右側操作員。

num1 >> 2是右移位運算符,將位向右移動,丟棄最右位,並將最左位的值賦值為0。在我們的例子中輸出為2,相當於00000010

按位運算符的示例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class BitwiseOperatorDemo {   public static void main(String args[]) {        int num1 = 11;  /* 11 = 00001011 */      int num2 = 22;  /* 22 = 00010110 */      int result = 0;        result = num1 & num2;         System.out.println("num1 & num2: "+result);        result = num1 | num2;         System.out.println("num1 | num2: "+result);            result = num1 ^ num2;         System.out.println("num1 ^ num2: "+result);            result = ~num1;         System.out.println("~num1: "+result);            result = num1 << 2;         System.out.println("num1 << 2: "+result); result = num1 >> 2;         System.out.println("num1 >> 2: "+result);   } }

輸出:

1 2 3 4 5 num1 & num2: 2 num1 | num2: 31 num1 ^ num2: 29 ~num1: -12 num1 << 244 num1 >> 22

7)三元運算符

此運算符計算布爾表達式並根據結果分配值。

句法:

1 variable num1 = (expression) ? value if true : value if false;

如果表達式結果為true,則將冒號( : )之前的第一個值賦值給變數num1,否則將第二個值賦值給變數num1。

三元運算符的例子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class TernaryOperatorDemo {      public static void main(String args[]) {      int num1, num2;      num1 = 25;             /* num1 is not equal to 10 that's why       * the second value after colon is assigned       * to the variable num2       */             num2 = (num1 == 10) ? 100 : 200;      System.out.println( "num2: "+num2);        /* num1 is equal to 25 that's why       * the first value is assigned       * to the variable num2       */             num2 = (num1 == 25) ? 100200;      System.out.println( "num2: "+num2);    } }

輸出:

1 2 num2: 200 num2: 100

Java中的運算符優先順序

如果表達式具有多個運算符,則確定首先需要對哪個運算符求值。操作符在頂部具有較高優先順序,在底部具有較低優先順序。

1 2 3 4 5 6 7 8 9 10 11 12 13 一元運算符:++   --   !   ~ 乘除法:    *   /   % 加減法:    +    - 移位:      <<   >> 關係:      >   >=   =   <= 平等:      ==   != 按位AND :  & 按位XOR :  ^ 按位OR :   | 邏輯AND :  && 邏輯OR :   || 三元:      ?: 賦值:      =   +=   -=   *=   /=   %=   >>   =<   <=   &=   ^=   |=

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 坐標軸(Axis) 坐標軸(Axis)在很多圖表中都可見到,例如柱形圖、折線圖、散點圖等。坐標軸由一組線段和文字組成,坐標軸上的點由一個坐標值確定。但是,如果使用SVG的直線和文字一筆一畫的繪製坐標軸,工作量將會極其的大。D3提供了坐標軸的製作方法,需要之前所給大家講的比例尺一起使用。開發者僅僅需要 ...
  • 讀心術小游戲 主要用到知識點 css3 2d轉換 與過渡 css 使用less display:grid 佈局 repeat()方法 fr單元是允許你用等分網格容器剩餘可用空間來設置(簡單來說就是占容器的幾份) 效果圖 html: css: js: javascript (function() { ...
  • 上一篇我們對經典的單例模式進行了學習,並且知道了單例模式的概念,以及如何通過單線程去創建一個有效的單例模式,讓程式不用多次去創建實例。 但是,通過巧克力工廠的實踐,我們很想知道在多線程模式下,這個到底會是什麼情況呢?所以,就有了我們繼續學習的目標啦。原來單例模式,不簡單呀。 多線程的麻煩 首先,我們 ...
  • 引言 前面我們介紹了網路一些基本的概念,雖然說這些很難吧,但是至少要做到理解吧。有了之前的基礎,我們來正式揭開Netty這神秘的面紗就會簡單很多。 服務端 我們來分析一下上面的這段代碼(下麵的每一點對應上面的註釋) 1~2:首先我們創建了兩個NioEventLoopGroup實例,它是一個由Nett ...
  • 一、定義 IEnumerable ICollection IList List 可以看到功能上List最強大,性能上IEnumerable更好,其實性能上都差不多,都是介面。 二、IEnumerable<T>和IQueryable<T> 的區別 IEnumerable<T> 是linq to obj ...
  • 題目 "977. Squares of a Sorted Array" Given an array of integers A sorted in non decreasing order, return an array of the squares of each number, also i ...
  • 將👇代碼粘貼到自己Django項目的配置文件中 在自己的項目中創建 log 文件夾 ...
  • Java編程語言是一種可以撰寫跨平臺應用軟體的面向對象的程式設計語言。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...