java短路運算子和邏輯運算子的區別
/*
* 邏輯運算子——不論是什麼條件都要執行左右兩邊程式碼
* 短路運算子——我認為在底層就是利用物理電路的“並聯”和“串聯”實現的
* 原理很簡單,並聯電路代表短路或(||),串聯電路代表短路與(&&)。
*
* 並聯電路兩個開關只要有一個開關閉合,電路就會通。
* 類似於短路或(||),只要有其中一個為true(開關閉合)是就不必執行右邊的程式碼
* 並聯電路兩個開關其中有一個開關沒有閉合(false),電路不會通,要繼續執行右邊的程式碼。
*
* 串聯電路(&&)原理是必須是兩個開關都閉合電路才能通,所以原理可想而知咯!
* 左邊的開關閉合(true)仍需判斷右邊的開關是否閉合,所會執行右邊的程式碼。
* 左邊的開關沒有閉合(false) 不用執行右邊的程式碼。
* 因為左邊開關沒有閉合!右邊的開關無論是否閉合電路都不會通電,所以不執行右邊的程式碼。
*
* ——不知不覺突然回顧了那麼多年前的物理課知識,多少回憶湧上心頭,
* 記得那時候拆了好多家裡的電池,到處找小燈泡去連線電路,
* 有時候電路短路,弄的火光閃爍...
*/
int a = 0;
int b = 0;
int c = 0;
int d = 0;
/*
flag = true
邏輯或1
短路或0
邏輯與1
短路與1
flag = false
邏輯或1
短路或1
邏輯與1
短路與0
*/
boolean flag = false;
// | 和 || 的區別
if(flag | a++ > 10) {
System.out.println("邏輯或" + a);
}else {
System.out.println("邏輯或" + a);
}
if(flag || b++ >10) {
System.out.println("短路或" + b);
}else {
System.out.println("短路或" + b);
}
// & 和 && 的區別
if(flag & c++ > 10) {
System.out.println("邏輯與" + c);
}else {
System.out.println("邏輯與" + c);
}
if(flag && d++ >10) {
System.out.println("短路與" + d);
}else {
System.out.println("短路與" + d);
}
相關文章
- java短路邏輯運算子是什麼Java
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- Java基礎09:邏輯運算子、位運算子Java
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- 邏輯運算子
- Python學習-比較運算子和邏輯運算子Python
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- SCSS 邏輯運算子CSS
- 4、邏輯運算子
- JavaScript || 邏輯或運算子JavaScript
- JavaScript && 邏輯與運算子JavaScript
- JavaScript ! 邏輯非運算子JavaScript
- iOS Swift邏輯運算子iOSSwift
- JS 中的邏輯運算子JS
- ## 運算子和方法的區別
- 關於 isset 和邏輯運算子的使用
- JS 邏輯運算子的特點JS
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- 剩餘運算子與展開運算子的區別
- Java運算子>>與>>>區別詳解Java
- 【C】 15_邏輯運算子分析
- 【C進階】15、邏輯運算子
- 物聯網學習教程——邏輯運算子和邏輯表示式
- javascript中&&運算子和||運算子的使用JavaScript
- 運算子 運算子
- Java的運算子Java
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- Java 運算子Java
- Java運算子Java
- PHP7 ?? 與 ?: 的作用和區別(null合併運算子, null條件運算子)PHPNull
- Java中的資料型別和運算子Java資料型別
- swift 區間運算子(... 和 ..Swift
- python-邏輯運算子對應的函式Python函式
- php運算子運用之型別運算子該如何使用PHP型別
- Java的左移和右移運算子Java
- c++ 和 c 三目運算子區別C++
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- 運算子-賦值運算子賦值
- 【Python基礎知識】Python中的邏輯運算子Python