1. 程式人生 > 其它 >BTC-比特幣網路(區塊鏈技術與應用)

BTC-比特幣網路(區塊鏈技術與應用)

運算子:比較運算子

運算子運算範例結果
== 相等於 4==3 false
!= 不等於 4!=3 true
< 小於 4<3 false
> 大於 4>3 true
<= 小於等於 4<=3 false
>= 大於等於 4>=3 true
instanceof 檢查是否是類的物件 "Hello" instanceof String true
比較運算子的結果都是 boolean 型別,要麼是 true 要麼是 false。
比較運算子 "==" 不能誤寫成 "="
class CompareTest{
    
public static void main(String[] args){ int i = 10; int j = 20; System.out.println(i==j); //false System.out.println(i=j); //20 boolean b1 = true; boolean b2 = false; System.out.println(b2==b1); //false System.out.println(b2=b1); //
true } }

運算子:邏輯運算子

  • &: 邏輯與
  • &&:短路與
  • |: 邏輯或
  • ||:短路或
  • ! :邏輯非
  • ^ : 邏輯異或
aba&ba&&ba|ba||b!aa^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false
class LogicTest{
    public static void main(String[] args){
        // 區分 & 與 &&
        // 相同點1:當 & 與 && 的運算結果相同
        // 相同點2:當符號左邊是true時,二者都會執行符號右邊的運算
        // 不同點: 當符號左邊是false時,& 繼續執行符號右邊的運算,&&不再執行符號右邊的運算。
        boolean b1 = true;
        int num1 = 10;
        if (b1 & (num1++ > 0)){
            System.out.println("Hello, beijing");    //Hello, beijing
        } else {
            System.out.println("Hello, nanjing");
        }
        System.out.println("num1 = " + num1);        //11
        
        boolean b2 = false;
        int num2 = 10;
        if (b2 && (num2++ > 0)){
            System.out.println("Hello, beijing");    //Hello, beijing
        } else {
            System.out.println("Hello, nanjing");
        }
        System.out.println("num2 = " + num2);        //10
        
        
        // 區分 | 與 ||
        // 相同點1: | 與 || 的運算結果相同
        // 相同點2: 當符號左邊是false時,兩者都執行符號右邊的運算
        // 不同點: 當符號左邊是tue時,| 繼續執行符號右邊的運算,||不再執行符號右邊的運算。 
        boolean b3 = true;
        int num3 = 10;
        if (b3 | (num3++ > 0)){
            System.out.println("Hello, beijing");    //Hello, beijing
        } else {
            System.out.println("Hello, nanjing");
        }
        System.out.println("num3 = " + num3);        //11
        
        boolean b4 = true;
        int num4 = 10;
        if (b4 || (num4++ > 0)){
            System.out.println("Hello, beijing");    //Hello, beijing
        } else {
            System.out.println("Hello, nanjing");
        }
        System.out.println("num4 = " + num4);        //10
    }
}

運算子:三元運算子

一: 格式:(條件表示式)?表示式1:表示式2
1.條件表示式為 true ,運算後的結果是表示式1
2.條件表示式為 false ,運算後的結果是表示式2

二: 表示式1和表示式2位同種型別

三: 三元運算子與if-else的聯絡與區別:
1.三元運算子可簡化為 if-else 語句
2.三元運算子要求必須返回一個結果
3.if後的程式碼塊可有多個語句
4.如果程式可以使用三元運算子,又可以使用if-else結構,那麼優先選擇三元運算子。原因:簡單,執行效率高。

class SanYuanTest {
    public static void main(String[] args){
        //獲取兩個整數的較大值
        int m = 12;
        int n = 5;
        
        int max = (m > n)?m : n;
        System.out.println(max);    //12
        
        double num = (m > n)? 2 : 1.0;
        System.out.println(num);    //2.0
        
        n = 12;
        String maxStr = (m > n)? "m大" : ((m == n)? "m 和 n 相等" : "n大");
        System.out.println(maxStr);  //m 和 n 相等
        
        //獲取三個數的最大值
        int n1 = 12;
        int n2 = 30;
        int n3 = -43;
        
        int max1 = (n1 > n2)? n1 : n2;
        int max2 = (max1 > n3)? max1 : n3;
        System.out.println("三個數中的最大值為: " + max2);  //三個數中的最大值為: 30
        
        // 不建議
        int max3 = (((n1 > n2)? n1 : n2) > n3)? ((n1 > n2)? n1 : n2) : n3;
        System.out.println("三個數中的最大值為: " + max3);  //三個數中的最大值為: 30
        
        // 改寫成 if-else
        if(m > n){
            System.out.println("m=" + m);
        }else{
            System.out.println("n=" + n);    //n=12
        }
    }
}