Java語言邏輯運算

一、Java邏輯運算的種類

1、概述

  • 邏輯運算是在關系運算基礎之上的運算,能處理更加復雜的問題。
  • 邏輯運算的結果是true或false。

2、邏輯運算的種類

運算種類 運算符號 運算表達式
與運算(長路運算) & 關系運算1 & 關系運算2
與運算(短路運算) && 關系運算1 && 關系運算2
或運算(長路運算) 關系運算1 丨關系運算2
或運算(短路運算) 丨丨 關系運算1 丨丨關系運算2
非運算 ! !(關系運算)

二、Java邏輯長路短路"與"運算

1、概述

與運算的特點:當兩個關系運算的結果都是true時,運算的結果是true,否則是false。

關系運算1 關系運算2 與運算結果
false false false
false true false
true false false
true true true

2、長路與運算

  • 長路與運算的運算符號:&
  • &在兩邊都是整數時,是逐位與運算;在兩邊是關系運算時,是邏輯運算。
  • 長路與運算會把兩邊的關系運算結果都計算出來。

示例:4<3 & 5*3>12

步驟1、計算4<3,結果是false。
步驟2、計算5*3>12,結果是true。
步驟3、false & true,結果是false。

3、短路與運算

  • 短路與運算的運算符號:&&
  • 短路與運算的特點:當運算符左邊的關系運算結果是false時,不再對右邊的關系運算進行計算。

示例:4<3 & 5*3>12

步驟1、計算4<3,結果是false。
步驟2、false && 5*3>12,結果是false。

三、Java邏輯長路短路"或"運算

1、概述

或運算的特點:當兩個關系運算的結果有一個是true時,運算的結果是true,否則是false。

關系運算1 關系運算2 與運算結果
false false false
false true true
true false true
true true true

2、長路或運算

  • 長路或運算的運算符號:|
  • 長路或運算在兩邊都是整數時,是逐位或運算;在兩邊是關系運算時,是邏輯運算。
  • 長路或運算會把兩邊的關系運算結果都計算出來。

示例: 5*3>12 | 4<3

步驟1、計算5*3>12,結果是true。
步驟2、計算4<3,結果是false。
步驟3、計算true | false,邏輯運算結果是true。

3、短路或運算

  • 短路或運算的運算符號:||
  • 短路或運算的特點:當運算符左邊的關系運算結果是true時,不再對右邊的關系運算進行計算,直接得出true的結果。

示例: 5*3>12 || 4<3

步驟1、計算5*3>12,結果是true。
步驟2、計算true || 4<3,結果是true。

四、Java邏輯"非"運算

1、概述

關系運算 非運算結果
false true
true false

2、示例

示例:!(5*3>12) 單目運算

步驟1、計算5*3>12,結果是true;
步驟2、!true,邏輯運算結果是false。

五、Java邏輯運算優先級

三種邏輯運算的優先級:
非運算最高
其次是與運算

優先級最低的是或運算

示例:5>=7 || 4<5 && !false

步驟1、計算關系運算:5>=7,結果:false;
步驟2、計算關系運算: 4<5,結果:true;
步驟3、計算邏輯非運算:!false,結果:true;
現在變成計算false || true && true的值,由于與運算高于或運算,所以先計算與運算
步驟4、計算邏輯運算:true && true,結果:true;
步驟5、計算邏輯或運算:false || true,結果:true。

六、Java邏輯運算案例

【示例-1】鍵盤輸入一個5分制分數,用與運算運算并顯示該數是否為5分制分數。

代碼
public class Test19 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("輸入5分制分數:");
        int score=scanner.nextInt();
        boolean isFiveScore=score>=0 && score<=5;
        System.out.println(score+"是5分制的分數:"+isFiveScore);
    }
}
結果一:
輸入5分制分數:
5
5是5分制的分數:true
結果二:
輸入5分制分數:
6
6是5分制的分數:false

【示例-2】鍵盤輸入一個5分制分數,用或運算運算并顯示該數是否為5分制分數。

代碼
public class Test20 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("輸入5分制分數:");
        int score=scanner.nextInt();
        boolean isnotFiveScore=score<0 || score>5;
        System.out.println(score+"不是5分制的分數:"+isnotFiveScore);
    }
}
結果一:
輸入5分制分數:
5
5不是5分制的分數:false
結果二:
輸入5分制分數:
6
6不是5分制的分數:true

【示例-3】鍵盤輸入一個5分制分數,用非運算計算并顯示該數是否為5分制分數。

代碼
public class Test21 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("輸入5分制分數:");
        int score=scanner.nextInt();
        boolean isFiveScore=!(score<0 || score>5);
        System.out.println(score+"是5分制的分數:"+isFiveScore);
    }
}
結果一:
輸入5分制分數:
4
4是5分制的分數:true
結果二:
輸入5分制分數:
7
7是5分制的分數:false
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,947評論 18 139
  • 長路與運算 & 短路與運算 && 長路或運算 | 短路或運算 || 長路與運算 & 運行如下程序: 返回結果為: ...
    謝隨安閱讀 557評論 0 0
  • C++運算符重載-上篇 本章內容:1. 運算符重載的概述2. 重載算術運算符3. 重載按位運算符和二元邏輯運算符4...
    Haley_2013閱讀 2,318評論 0 51
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 知行格-英雄之旅 日精進第 4日 日閱讀:《三毛散文名篇》 日鍛煉:晨起跑步一千兩百米 日總結反思: 由于拖延懶...
    筑夢灑脫閱讀 187評論 0 0