運算符和表達式java
- 算數運算
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.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.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++不會被執行
想要更多面試題和學習資料的能夠私聊聯繫我,你們一塊兒交流學習!面試