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
- javascript運算子——邏輯運算子JavaScript
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- Java基礎09:邏輯運算子、位運算子Java
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- 邏輯運算子
- javascript邏輯運算子“||”和“&&”JavaScript
- Java基礎——邏輯運算子Java
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- Python學習-比較運算子和邏輯運算子Python
- SCSS 邏輯運算子CSS
- 4、邏輯運算子
- JavaScript ! 邏輯非運算子JavaScript
- JavaScript || 邏輯或運算子JavaScript
- JavaScript && 邏輯與運算子JavaScript
- iOS Swift邏輯運算子iOSSwift
- JS 中的邏輯運算子JS
- ## 運算子和方法的區別
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- JS 邏輯運算子的特點JS
- java中equals方法與==邏輯運算子薦Java
- 剩餘運算子與展開運算子的區別
- 運算子與= 區別
- Java 運算子 % 和 /Java
- 【C】 15_邏輯運算子分析
- 【C進階】15、邏輯運算子
- javascript基礎(邏輯運算子)(九)JavaScript
- Java運算子>>與>>>區別詳解Java
- SQL Server查詢計劃系列之——邏輯運算子與物理運算子SQLServer
- C++中運算子 &和&&、|和|| 的區別C++
- javascript中&&運算子和||運算子的使用JavaScript
- 運算子 運算子
- 物聯網學習教程——邏輯運算子和邏輯表示式
- 【java資料型別和運算子】Java資料型別
- Linux Shell 邏輯運算子、邏輯表示式詳解Linux
- Java的運算子Java
- Java 運算子Java
- Java運算子Java