Java運算符詳解

Java運算符詳解

學習運算符之前,需要先搞清楚運算符和表達式的概念。

1. 運算符的概念

對變量或者常量進行操作的符號被稱之為運算符。

2. 表達式的概念

用運算符把常量或者變量連接起來符合java語法的式子就可以稱為表達式。不同運算符連接的式子體現的是不同類型的表達式。

3. 運算符的分類

3.1算術運算符

算術運算符包括以下幾種:

+:加法,包括以下三種情況,

數字相加。

字符相加,拿字符在計算機底層存儲的對應的數據值(字符在ASCII碼錶中對應的數字)來參與運算的。

字符串相加,是進行字符串的拼接,字符串的數據和其他類型的數據進行相加的結果是字符串類型的。

-:減法,整數類型或者小數類型的數據做減法。

*:乘法,整型或者小數類型的數據做乘法。

/:除法,得到的是兩個數相除的商。

%模,得到的是兩個數相除的餘數。

++,對變量的值做加1的處理。如果++是寫在變量的後面,是先拿變量原先的值參加運算,再對變量的值加1; 如果++是寫在變量的前面,先把原來變量的值加1,再用加1後的數據參加運算。

--,對變量的值做減1的處理,如果--是寫在變量的後面,是先拿變量原先的值參加運算,再對變量的值減1; 如果--是寫在變量的前面,先把原來變量的值減1,再用減1後的數據參加運算。

代碼示例:

public class OperatorDemo1 {

public static void main(String[] args) {

int a = 1;

int b = 2;

char c = 'c';

//加法,數字相加

System.out.println(a+b);

//加法,字符相加

System.out.println(a+c);

//加法,字符串和字符串相加,字符串和其他類型的數據相加

System.out.println("hello"+"everybody");

System.out.println("hello"+a);

//乘法

System.out.println(a*b);

//除法,求商

System.out.println(a/b);

//除法,求模

System.out.println(a%b);

//++定義在變量的前面

System.out.println(++a);

//++定義在變量的後面

System.out.println(a++);

//--定義在變量的前面

System.out.println(--b);

//--定義在變量的後面

System.out.println(b--);

}

}

3.2賦值運算符

基本的賦值運算符:=

擴展的賦值運算符:+=、-=、*=、/= 、%=

把左邊和右邊的結果賦值給左邊。

注意:左邊不能是常量。

隱含了一個強制類型轉換。.

代碼示例

public class OperatorDemo2 {

public static void main(String[] args) {

int a = 1;

short b = 2;

// +=

a += 10;

b +=20;//b +=20相當於b = (short)(b+20),隱含了一個強制的數據類型轉換。

System.out.println(a);

System.out.println(b);

// -=

System.out.println(a -= 1);

// *=

System.out.println(a *= 2);

// /=

System.out.println(a /= 2);

// %=

System.out.println(a %= 2);

}

}

3.3關係運算符

常見的關係比較運算符有:==,!=,>,=,<=。

關係運算符的結果都是boolean型,也就是要麼是true,要麼是false。

代碼示例:

public class OperatorDemo3 {

public static void main(String[] args) {

int a = 10;

int b = 20;

// ==

System.out.println(a == b);

// !=

System.out.println(a != b);

// >

System.out.println(a > b);

// <

System.out.println(a < b);

// >=

System.out.println(a >= b);

// <=

System.out.println(a <= b);

}

}

3.4邏輯運算符

作用:邏輯運算符用於連接布爾型表達式,在Java中不可以寫成33 && x<6。

邏輯運算符的分類:

與:& 有false則false,無論左邊真假,右邊都參與運算。

或:| 有true則true,無論左邊真假,右邊都參與運算。

異或:^ 相同則false,不同則true

非:! true則false,false則true

雙與:&& 如果左邊為true,右邊參與運算;當左邊判斷為false時,整體為false,右邊不再參與運算。

雙或:|| 如果左邊為true,右邊不再參與運算,整體為true;如果左邊為false,判斷右邊是否為true。

綜上考慮,&&和||的執行效率更高,所以在實際開發中一般都用&&和||。

代碼示例:

public class OperatorDemo4 {

public static void main(String[] args) {

int a = 10;

int b = 20;

int c = 30;

System.out.println((a>b) & (a>c));// false & false

System.out.println((ac)); // true & false

System.out.println("---------------");

System.out.println((a>b) | (a>c));// false | false

System.out.println((ac)); // true | false

System.out.println("---------------");

System.out.println((a>b) ^ (a>c));// false ^ false

System.out.println((ac)); // true ^ false

System.out.println("---------------");

System.out.println((a>b)); // false

System.out.println(!(a>b)); // !false

System.out.println(!!(a>b)); // !!false

System.out.println("---------------");

System.out.println((a>b) && (a>c));// false && false

System.out.println((ac)); // true && false

System.out.println("---------------");

System.out.println((a>b) || (a>c));// false || false

System.out.println((ac)); // true || false

}

}

3.5三元運算符

格式:

(關係表達式)?表達式1:表達式2;

如果條件為true,運算後的結果是表達式1;

如果條件為false,運算後的結果是表達式2;

代碼示例:

public class OperatorDemo5 {

public static void main(String[] args) {

int a = 10;

int b = 20;

int c = (a>b) ? a : b;

System.out.println("c:" + c);

}

}

Java運算符詳解


分享到:


相關文章: