【小白必看】運算符和表達式詳解

運算符和表達式

  1. 算數運算
    1.1. 使用%運算符
    Java算術運算符除了通常的加(+)、減(-)、乘()、除(\)之外,還包括取模運算(%)和自增(++)及自減(--)運算。+,-,,/ 比較簡單,實驗一下即可。
    取模運算(%)意爲取餘數,只能適用於整數及char類型。示例代碼如下所示:
    1.// 輸出255除以8所得的餘數。
    2.int n = 225;
    3.System.out.println(n % 8); //結果爲1
    1.2. 使用“++”和“--”運算符
    Java的自增運算符(++)和自減運算符(--)繼承自C++,可以使變量的值加1或減1,但其寫在變量前和變量後有不同的效果:
    1.如果寫在變量前,表示在使用這個變量之前加1或減1
    2.如果寫在變量後,表示這個變量使用完之後再加1或減1
    示例代碼如下所示:
    1.int a = 10, b = 20;
    2.int c1 = a++; // 先將a的值賦給c1,然後a再自加
    3.int c2 = ++b; // 先將b的值自加,然後再賦給c2
    4.System.out.println("a=" + a + ", b=" + b + ", c1=" + c1 + ", c2=" + c2);
    5.// 輸出的結果爲: a=11, b=21, c1=10, c2=21
  2. 關係運算
    2.1. 使用關係運算符
    Java中的關係運算符用於判斷數據之間的大小關係,包括大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、等於(==)、不等於(!=) 六個運算符。
    在實際應用中常常使用,假設現在想實現轉帳功能,輸入轉帳的金額,需要判斷所轉帳的金額是否大於當前帳戶的金額,那結果只有兩個,大於或不大於,在java語言中,使用boolean類型來表示這種是否的狀態,如果關係成立爲true,否則爲false。示例代碼如下所示:
    1.int max = 10;
    2.int num = 9;
    3.boolean b1 = max > 15;
    4.boolean b2 = num%2 == 1;
    5.System.out.println(b1); // 結果爲false
    6.System.out.println(b2); // 結果爲true
  3. 邏輯運算
    3.1. 邏輯運算
    前面的關係運算符是用於比較兩個數值之間的大小關係的, 而邏輯運算符是用來進行邏輯運算的,它是建立在關係運算的基礎之上的。當兩個關係運算需要兼顧考慮時,可以使用邏輯運算符。
    邏輯運算符包括:與(&&)、或(||)和非(!)。參與邏輯運算的變量或表達式都是boolean類型,運算結果也爲boolean類型。
    3.2. 使用“&&”運算符
    兩個boolean變量參與“&&”運算時,只有當兩個變量均爲true的時,運算結果才爲true,否則結果爲false。示例代碼如下所示:
    1.int score = 80;
    2.boolean b = score >= 60 && score < 90;
    3.System.out.println(b);
    4.// 結果爲true,因爲score的值同時滿足大於等於60和小於90這兩個條件,邏輯表達式“score >= 60”和“score < 90”的結果均爲true,所以&&運算的結果即爲true。
    3.3. 使用“||”運算符
    兩個boolean變量參與“||”運算時,當兩個變量有一個爲true時,結果即爲true,只有當兩個變量均爲false時結果爲false。示例代碼如下所示:
    1.boolean flag = true;
    2.int n = 200;
    3.boolean b1 = flag || (n >= 0 && n < 100);
    4.System.out.println(b1);
    5.// 結果爲true,上面這段代碼中,表達式“flag || (n >= 0 && n < 100)”的含義是:當flag爲true或者n在0到100之間(n大於等於0且小於100)時,結果爲true,否則爲false。根據flag和n的值,最後的運算結果爲true。
    3.4. 使用“!”運算符
    “!”運算相對簡單,只有一個boolean變量參與運算,運算的值與該變量相反,變量爲true時結果爲false,變量爲false是結果爲true。示例代碼如下所示:
    1.boolean flag = true;
    2.int n = 200;
    3.boolean b = !flag || (n >= 0 && n < 100);
    4.System.out.println(b);
    5.// 結果爲false,上面這段代碼中,表達式“!flag || (n >= 0 && n < 100)”的含義是:當flag爲false或者n在0到100之間(n大於等於0且小於100)時,結果爲true,否則爲false。根據flag和n的值,最後的運算結果爲false。
    3.5. 關於“短路邏輯”的問題
    Java邏輯運算中的&&和||有短路的特性,當第一個關係表達式就可以判斷出整個表達式的結果時,就不會再去判斷後面的第二個表達式。
    1.對於“&&”,當第一個操作數爲false時,將不會判斷第二個操作數,因爲此時無論第二個操作數是什麼最後的結果一定是false;
    2.對於“||”,當第一個操作數爲true時,將不會判斷第二個操作數,因爲此時無論第二個操作數爲何,最後的運算結果一定是true。
    示例代碼如下所示:
    1.int i = 100, j = 200;
    2.boolean b1 = (i > j) && (i++ > 100);
    3.System.out.println(b1); // 結果爲:false
    4.System.out.println(i); // 結果爲:100,發生短路,i++不會被執行
    5.boolean b2 = i > 0 || j++ > 200;
    6.System.out.println(b2); // 結果爲:true
    7.System.out.println(j); // 結果爲:200,發生短路,j++不會被執行

想要更多面試題和學習資料的可以私聊聯繫我,大家一起交流學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章