- Java開發之道
- 張振坤 李鐘尉 陳丹丹等編著
- 575字
- 2018-12-27 19:53:58
第4章 細說開發人員意識中的20個常見謬誤
對編程相關知識理解上的錯誤可能會對編寫的程序產生負面的影響,也可能會給他人造成理解上的錯誤,這里的錯誤我們稱為謬誤。
為了避免編程謬誤對程序員及其所開發軟件造成影響,要對這些謬誤進行更正,筆者根據多年的編程經驗,對一些經常容易產生的謬誤進行了總結,希望通過本章的學習,程序員能夠不再犯同樣的錯誤。
謬誤1 看似相同——使用&&、||和&、|作用于布爾值效率相同
有很多程序員認為邏輯與運算符“&&”和“&”,作用于布爾值效率相同,其實這種說法是錯誤的,這是因為“&&”是短路運算符,當用“&&”連接起來的兩個邏輯值,如果第一個邏輯值為假值false,則“&&”連接的表達式就為假值false,不再判斷第二個邏輯值的真假,而用“&”連接起來的表達式則不同,不管第一個邏輯值是真值true,還是假值false,都需要對第二個邏輯值進行判斷,所以使用“&”運算符要比使用“&&” 運算符效率低。
同理,對于邏輯或運算符“||”和“|”,作用于布爾值效率相同的說法也是錯誤的,這是因為“||”也是短路運算符,當用“||”連接起來的兩個邏輯值,如果第一個邏輯值為真值true,則“||”連接的表達式就為真值true,不再判斷第二個邏輯值的真假,而用“|”連接起來的表達式則不同,不管第一個邏輯值是真值true,還是假值false,都需要對第二個邏輯值進行判斷,所以使用“|”運算符要比使用“||” 運算符效率低。
示例:
public class Test { public static void main (String[] args) { int a = 200; if (a>100 && a<500){ // 使用&&運算符 System.out. println ("a是100到500之間的數"); } int b = 800; if (b>500 & b<1000){ // 使用&運算符 System.out. println ("b是500到1000之間的數"); } } }
運行本示例,效果如圖4.1所示。

圖4.1 使用&&和&運算符的效果
說明
雖然使用“&&”和“&”以及“||”和“|”都可以進行邏輯運算,但是由于“&&”和“||”是短路運算符,執行效率高,所以如果作為條件語句和循環語句的條件使用時,則應盡量使用“&&”和“||”運算符。
推薦閱讀
- Mastering Concurrency Programming with Java 8
- Practical Data Analysis Cookbook
- OpenShift開發指南(原書第2版)
- The React Workshop
- Android 7編程入門經典:使用Android Studio 2(第4版)
- Mastering Scientific Computing with R
- Flash CS6中文版應用教程(第三版)
- 微信小程序開發解析
- Spring Boot企業級項目開發實戰
- Mobile Device Exploitation Cookbook
- Java Web開發就該這樣學
- Clojure for Machine Learning
- Node學習指南(第2版)
- Apache Camel Developer's Cookbook
- Go語言入門經典