Java入門-Day5:運算符

閱讀時間約 9 分鐘

算數運算子

Java中的算數運算子用於進行基本的數學運算,如加、減、乘、除等。以下是主要的算數運算子:

運算子包括:

  • 加法:a + b
  • 減法:a - b
  • 乘法:a * b
  • 除法:a / b
  • 取餘數:a % b
  • 自增1:a++ 或 ++a
  • 自減1:a-- 或 --a

範例程式碼:

public class ArithmeticOperators {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
a++;
System.out.println("a++ = " + a);
b--;
System.out.println("b-- = " + b);
}
}

比較運算子

比較運算子用於比較兩個值,返回布林值truefalse。以下是主要的比較運算子:

運算子包括:

  • 等於:a == b
  • 不等於:a != b
  • 大於:a > b
  • 小於:a < b
  • 大於或等於:a >= b
  • 小於或等於:a <= b

範例程式碼:

public class ComparisonOperators {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a == b: " + (a == b));
System.out.println("a != b: " + (a != b));
System.out.println("a > b: " + (a > b));
System.out.println("a < b: " + (a < b));
System.out.println("a >= b: " + (a >= b));
System.out.println("a <= b: " + (a <= b));
}
}

賦值運算子

賦值運算子用於將值賦給變數。以下是主要的賦值運算子:

運算子包括:

  • 賦值:a = b
  • 加且賦值:a += b
  • 減且賦值:a -= b
  • 乘且賦值:a *= b
  • 除且賦值:a /= b
  • 取餘且賦值:a %= b
  • 位元與且賦值:a &= b
  • 位元或且賦值:a |= b
  • 位元異或且賦值:a ^= b
  • 左移且賦值:a <<= b
  • 右移且賦值:a >>= b
  • 無符號右移且賦值:a >>>= b

範例程式碼:

public class AssignmentOperators {
public static void main(String[] args) {
int a = 10;
int b = 5;
a += b;
System.out.println("a += b: " + a);
a -= b;
System.out.println("a -= b: " + a);
a *= b;
System.out.println("a *= b: " + a);
a /= b;
System.out.println("a /= b: " + a);
a %= b;
System.out.println("a %= b: " + a);
}
}

位元運算子

位元運算子用於對二進制位進行操作。以下是主要的位元運算子:

運算子包括:

  • 位元與:a & b
  • 位元或:a | b
  • 位元異或:a ^ b
  • 位元取反:~a
  • 左移:a << 2
  • 右移:a >> 2
  • 無符號右移:a >>> 2

範例程式碼:

public class BitwiseOperators {
public static void main(String[] args) {
int a = 5; // 0101 in binary
int b = 3; // 0011 in binary

System.out.println("a & b: " + (a & b)); // 0001 -> 1
System.out.println("a | b: " + (a | b)); // 0111 -> 7
System.out.println("a ^ b: " + (a ^ b)); // 0110 -> 6
System.out.println("~a: " + (~a)); // 1010 -> -6
System.out.println("a << 1: " + (a << 1)); // 1010 -> 10
System.out.println("a >> 1: " + (a >> 1)); // 0010 -> 2
System.out.println("a >>> 1: " + (a >>> 1)); // 0010 -> 2
}
}

運算子的優先等級

運算子的優先等級決定了在沒有明確使用括號的情況下,運算子在表達式中被求值的順序。以下是一些常見運算子的優先等級,從高到低排列:

  1. 括號 ()
  2. 一元運算子 ++, --, +, -, ~, !
  3. 乘法和除法 *, /, %
  4. 加法和減法 +, -
  5. 移位運算子 <<, >>, >>>
  6. 比較運算子 <, <=, >, >=
  7. 相等運算子 ==, !=
  8. 位元與 &
  9. 位元異或 ^
  10. 位元或 |
  11. 邏輯與 &&
  12. 邏輯或 ||
  13. 三元運算子 ? :
  14. 賦值運算子 =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=

範例程式碼:

public class OperatorPrecedence {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 2;

// 優先級範例
int result = a + b * c; // 10 + (5 * 2) -> 10 + 10 -> 20
System.out.println("a + b * c = " + result);

result = (a + b) * c; // (10 + 5) * 2 -> 15 * 2 -> 30
System.out.println("(a + b) * c = " + result);

result = a / b * c; // (10 / 5) * 2 -> 2 * 2 -> 4
System.out.println("a / b * c = " + result);

result = a % b + c; // (10 % 5) + 2 -> 0 + 2 -> 2
System.out.println("a % b + c = " + result);
}
}



    13會員
    111內容數
    日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
    留言0
    查看全部
    發表第一個留言支持創作者!
    Michael楊 的其他內容
    此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
    此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
    此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
    這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
    本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
    這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
    此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
    此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
    此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
    這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
    本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
    這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
    你可能也想看
    Thumbnail
    1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    Lazy evaluation 的效益必須是在 pipe 的組合上有最佳化過的,若組合的不好反而更糟糕,且在 I/O 上幫助似乎也不大。parallel stream 要能發揮效果必須看資料的來源類型,不過要注意的是 parallel stream 也會使記憶體的使用量增加,使用上也要小心。
    Thumbnail
    老實說,看到 Java Sream API 讓我感到相當親切,這應該跟我研究所多年的研究題目是 visual dataflow language 有關,Java Stream API 把迴圈給內化了,每個 operation 的重點是要做什麼,大大提高了程式的抽象化程度和可讀性。
    Thumbnail
    最後,Java 8 雖然支援 Lambda,但我覺得 Closure 某種程度上還不稱不上是 Java 的第一級居民,我還是比較喜歡寫一些小而易測的 class,而不是使用 Lambda,至於捕捉變數,透過建構子將變數帶入物件也是一種方式。
    Thumbnail
    Java 8 終於在 2014 的 3 月 18 日正式釋出了,不過自從用 Objective C 開發 iOS App後,我已經有好一陣子沒碰 Java,期間曾經有短暫寫一點點,但卻沒有時間去用 beta 版的 Java 8,直到最近才又開始玩一下。
    Thumbnail
    在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
    Thumbnail
    在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
    Thumbnail
    @Throws 是 Kotlin 中用來標記函數可能會拋出(throw)特定類型異常的註解。當你使用這個註解標記一個函數時,表示這個函數可能會丟出指定的異常類型。這有助於告訴其他開發者,在使用你的函式時要特別注意處理這類異常情況。 例如,我們常在讀取檔案或是解析 API 特定 Json 欄位資料,若
    Thumbnail
    Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
    Thumbnail
    當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
    Thumbnail
    在混合開發的 Java 和 Kotlin 項目中,函數命名衝突是一個常見的問題。這時可以利用@JvmName 註解來解決這樣的狀況。@JvmName 註解非常實用,它可以讓你更靈活地控制在 JVM 平台上生成的 Kotlin 程式碼名稱。
    Thumbnail
    1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    Lazy evaluation 的效益必須是在 pipe 的組合上有最佳化過的,若組合的不好反而更糟糕,且在 I/O 上幫助似乎也不大。parallel stream 要能發揮效果必須看資料的來源類型,不過要注意的是 parallel stream 也會使記憶體的使用量增加,使用上也要小心。
    Thumbnail
    老實說,看到 Java Sream API 讓我感到相當親切,這應該跟我研究所多年的研究題目是 visual dataflow language 有關,Java Stream API 把迴圈給內化了,每個 operation 的重點是要做什麼,大大提高了程式的抽象化程度和可讀性。
    Thumbnail
    最後,Java 8 雖然支援 Lambda,但我覺得 Closure 某種程度上還不稱不上是 Java 的第一級居民,我還是比較喜歡寫一些小而易測的 class,而不是使用 Lambda,至於捕捉變數,透過建構子將變數帶入物件也是一種方式。
    Thumbnail
    Java 8 終於在 2014 的 3 月 18 日正式釋出了,不過自從用 Objective C 開發 iOS App後,我已經有好一陣子沒碰 Java,期間曾經有短暫寫一點點,但卻沒有時間去用 beta 版的 Java 8,直到最近才又開始玩一下。
    Thumbnail
    在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
    Thumbnail
    在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
    Thumbnail
    @Throws 是 Kotlin 中用來標記函數可能會拋出(throw)特定類型異常的註解。當你使用這個註解標記一個函數時,表示這個函數可能會丟出指定的異常類型。這有助於告訴其他開發者,在使用你的函式時要特別注意處理這類異常情況。 例如,我們常在讀取檔案或是解析 API 特定 Json 欄位資料,若
    Thumbnail
    Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
    Thumbnail
    當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
    Thumbnail
    在混合開發的 Java 和 Kotlin 項目中,函數命名衝突是一個常見的問題。這時可以利用@JvmName 註解來解決這樣的狀況。@JvmName 註解非常實用,它可以讓你更靈活地控制在 JVM 平台上生成的 Kotlin 程式碼名稱。