4.3 邏輯運算子
邏輯運算子是指進行邏輯運算的符號。邏輯運算主要包括與(and)、或(or)和非(not)三種,在程式中主要用來連線多個條件,從而形成更加複雜的條件。
邏輯運算子的運算結果是boolean型別。
參與邏輯運算的資料也必須是boolean型別。
關於邏輯運算子的種類和說明參看表4-3。
表4-3 邏輯運算子
符號
名稱
功能說明
&&
邏輯與
兩個條件同時為true才為true,否則為false
||
邏輯或
兩個條件有乙個為true則為true,否則為false
!
邏輯非
只操作乙個資料,對資料取反
邏輯運算子使用示例**:
boolean b1 = true;
boolean b2 = false;
boolean b3 = b1 && b2; //則b3的值是false
b3 = b1 || b2; //則b3的值是true
b3 = !b1; //則b3的值是false
在實際程式中,可以根據邏輯的需要使用對應的邏輯運算符號。實際使用示例:
l 表示變數n是否屬於[0,10)區間
int n = 4;
boolean b = (n >=0) && (n < 10);
對於變數n來說,只要n同時滿足大於等於零,且小於10,則位於[0,10)區間,由於程式中無法書寫0<=n<10這樣的條件,則必須通過邏輯運算子進行連線。
l 表示變數n不屬於[0,10)區間
一種寫法是:
int n = 4;
boolean b = !((n >= 0) && (n < 10));
這裡,對於屬於該區間的條件取反,則可以獲得不屬於該區間的條件。
另一種寫法是:
int n = 4;
boolean b = (n < 0) || (n >= 10);
這裡做了乙個簡單的變通,如果變數n不屬於該區間,則在數學上只需要滿足n小於0或者n大於等於10的任何乙個條件即可,這樣的或者關係在程式中實現時使用邏輯或實現。
在程式設計中,根據邏輯需要,使用對應的邏輯運算子,可以實現相對比較複雜的組合條件,從而實現對應程式的功能。
最後說一下&&和&的區別,其實在進行邏輯與運算時,既可以使 用&&也可以使用&,在功能上本身沒有區別。兩者區別的位置在,對於&來說,如果左側條件為false,也會計算右側條 件的值,而對於&&來說,如果左側的條件為false,則不計算右側的條件,這種現象被稱作短路現象。
示例**:
int n = -1;
boolean b1 = (n >= 0) && (n < 10);
boolean b2 = (n >= 0) & (n < 10);
則對於第二行**來說,兩個條件都將被計算,而對於第三行**來說,因為n >= 0這個條件不成立,則n < 10根本不會被執行。當然,兩者得到的最終結果是一樣的。
對於現在的**來說,區別不大,但是如果後續的條件是乙個方法(方法的概念後續將介紹到),則將影響程式邏輯。
驗證&和&&功能的示例**如下:
public class test
}
Java程式設計那些事兒 如何學好程式設計
俗話說 興趣是最好的老師 但是只靠興趣是遠遠不夠的,還需要付出艱辛的努力。程式設計是一種技能,需要在較短的時間內學會,就不能像學習漢語一樣,通過十幾年甚至更長的時間來學好,也不能像英語那樣進行業餘學習,以至很多大學畢業的人英語水平也不敢恭維,也達不到實用的程度。那麼如何學好程式設計呢?或者更現實一點...
程式語言那些事兒
開發工具 入門 c 初級開發師 基本資料型別 引用資料型別 常量 變數 表示式 運算子 順序 分支 迴圈 i oc 中級開發師 命名空間 程式設計思想 量化你的思維 流程圖 偽 功能劃分 模組劃分 db設計 sys設計 函式思想 重用 i o 重構 物件導向的思想 物件陣列 物件指標 友元函式和友元...
Java程式設計那些事兒36 do while語句語法
5.4.2 do while語句 do while語句由關鍵字do和while組成,是迴圈語句中最典型的 先迴圈再判斷 的流程控制結構,這個和其它2個迴圈語句都不相同。do while語句的語法格式為 dowhile 迴圈條件 語法說明 在do while語句中,迴圈體部分是重複執行的 部分,迴圈條...