程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程那些事兒23—邏輯運算符

Java編程那些事兒23—邏輯運算符

編輯:關於JAVA

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{
 public static void main(String[] args){
  int n = 10;
  boolean b = (n < 8) && ((n = 1) != 0);
  int m = 20;
  boolean b1 = (m < 8) & ((m = 1) != 0);
  System.out.println(n);
  System.out.println(m);
 }
}

文章來源:http://blog.csdn.net/Mailbomb/archive/2008/05/22/2470337.aspx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved