標籤:
Java中的運算子和C/C++相差無幾。數學運算子數學運算,結果為一個數值。見下表:
運算子 |
說明 |
舉例 |
+ |
加法 |
1 + 2 |
- |
減法 |
4 - 3.4 |
* |
乘法 |
7 * 1.5 |
/ |
除法 |
3.5 / 7 |
% |
取餘 |
7 % 2 |
++ |
自增 |
3++ |
-- |
自減 |
3-- |
關係運算子關係運算子,結果為一個布爾值。見下表:
運算子 |
說明 |
舉例 |
> |
大於 |
a > 4.2 |
>= |
大於等於 |
3.4 >= b |
< |
小於 |
1.5 < 9 |
<= |
小於等於 |
6 <= 1 |
== |
等於 |
2 == 2 |
!= |
不等於 |
2 != 2 |
&& |
與 |
true && false |
|| |
或 |
(3 > 1) || (2 == 1) |
! |
非 |
!true |
位元運算符位元運算符對整數的二進位形式逐位進行邏輯運算,得到一個整數。見下表:
運算子 |
說明 |
舉例 |
& |
與 |
1 & 4 |
| |
或 |
2 | 5 |
^ |
異或 |
2 ^ 3 |
~ |
非 |
~5 |
<< |
左移 |
5 << 3 |
>> |
右移 |
6 >> 1 |
條件運算子Java中也有一個條件運算子(三目運算子):
condition ? x1 : x2
condition為一個boolean值。根據condition,取x1或x2的值。
下面是關於運算子的一個綜合舉例:
1 public class Demo { 2 public static void main(String[] args){ 3 int a=10; 4 int b=10; 5 int x=10; 6 int y=21; 7 int z=10; 8 System.out.println("後自加 a=" + (a++)); 9 System.out.println("a的值 a=" + a);10 System.out.println("前自加 b=" + (++b));11 System.out.println("---------------------");12 System.out.println("說 x>y,對嗎?" + (x>y));13 System.out.println("認為 x>y 並且 x<y,對嗎?" + ( (x>y) && (x<y) ));14 System.out.println("認為 x>=y 或者 x==y,對嗎?" + ( (x>=y) || (x==y) ));15 System.out.println("認為 x<y 或者 x=z,對嗎?" + ( (x<y) || (x==z) ));16 System.out.println("---------------------");17 System.out.println("a&x 的結果是:" + (a&x));18 System.out.println("a|x 的結果是:" + (a|x));19 System.out.println("y^z 的結果是:" + (y^z));20 System.out.println("---------------------");21 System.out.println("a 左移2位的結果是:" + (a<<2));22 System.out.println("y 右移3位的結果是:" + (y>>3));23 }24 }
運行結果:
後自加 a=10
a的值 a=11
前自加 b=11
---------------------
說 x>y,對嗎?false
認為 x>y 並且 x<y,對嗎?false
認為 x>=y 或者 x==y,對嗎?false
認為 x<y 或者 x=z,對嗎?true
---------------------
a&x 的結果是:10
a|x 的結果是:11
y^z 的結果是:31
---------------------
a 左移2位的結果是:44
y 右移3位的結果是:2
系列文章:
Java知多少(1)語言概述
Java知多少(2)虛擬機器(JVM)以及跨平台原理
Java知多少(3) 就業方向
Java知多少(4)J2SE、J2EE、J2ME的區別
Java知多少(5) Java開發環境的搭建
Java知多少(6)第一個程式樣本
Java知多少(7)類與對象
Java知多少(8)類庫及其組織圖
Java知多少(9) import及Java類的搜尋路徑
Java知多少(10)資料類型及變數
Java知多少(11)資料類型轉換
Java知多少(12)運算子
Java知多少(12)運算子