控制程序流程 – JAVA編程語言程序開發技術文章

1、使用java運算符
+、-、*、\、=幾乎所有的運算符隻能操作主類型,唯一例外的是“=”“==”“!=”能夠操作主類型,string支持“+”“+=”
2、賦值
對主數據類型的賦值是非常直接的,由於主類型容納瞭實際的值,而並非指向實際值的句柄,所以在對象賦值的時候,將一個值賦值到另一個地方,假設主類型a=b,若修改瞭a,b值並不會受到影響;
若對象賦值的時候,則發生瞭變化,對象之間的操作實際上是句柄的操作,對象賦值,將一個句柄賦值到另一個地方,C=D,若c變化,d也會變化;
3、 關系運算符
關系運算符生成的是一個“佈爾”(Boolean)結果。它們評價的是運算對象值之間的關系。若關系是真實的,關系表達式會生成true(真);若關系不真實,則生成false(假)。關系運算符包括小於(<)、大於(>)、小於或等於(<=)、大於或等於(>=)、等於(==)以及不等於(!=)。等於和不等於適用於所有內建的數據類型,但其他比較不適用於boolean類型。
4、邏輯運算符
邏輯運算符AND(&&)、OR(||)以及NOT(!)能生成一個佈爾值(true或false)——以自變量的邏輯關系為基礎。下面這個例子向大傢展示瞭如何使用關系和邏輯運算符。
1. 短路
操作邏輯運算符時,我們會遇到一種名為“短路”的情況。這意味著隻有明確得出整個表達式真或假的結論,才會對表達式進行邏輯求值。因此,一個邏輯表達式的所有部分都有可能不進行求值:

 
 //: ShortCircuit.java
// Demonstrates short-circuiting behavior
// with logical operators.

public class ShortCircuit {
  static boolean test1(int val) {
    System.out.println("test1(" + val + ")");
    System.out.println("result: " + (val < 1));
    return val < 1;
  }
  static boolean test2(int val) {
    System.out.println("test2(" + val + ")");
    System.out.println("result: " + (val < 2));
    return val < 2;
  }
  static boolean test3(int val) {
    System.out.println("test3(" + val + ")");
    System.out.println("result: " + (val < 3));
    return val < 3;
  }
  public static void main(String[] args) {
    if(test1(0) && test2(2) && test3(2))
      System.out.println("expression is true");
    else
      System.out.println("expression is false");
  }
} ///:~

每次測試都會比較自變量,並返回真或假。它不會顯示與準備調用什麼有關的資料。測試在下面這個表達式中進行:
if(test1(0)) && test2(2) && test3(2))
很自然地,你也許認為所有這三個測試都會得以執行。但希望輸出結果不至於使你大吃一驚:

 
 if(test1(0) && test2(2) && test3(2))

第一個測試生成一個true結果,所以表達式求值會繼續下去。然而,第二個測試產生瞭一個false結果。

 

本文出自“趙志軍的博客”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *