《Java從小白到大牛精簡版》之第6章 運算符(上)

2017-11-27 09:09:07php

《Java從小白到大牛》紙質版已經上架了!!!
Java從小白到大牛書皮html


Java語言中的運算符(也稱操做符)在風格和功能上都與C 和C++極爲類似。本章爲你們介紹Java語言中一些主要的運算符,包括算術運算符、關係運算符、邏輯運算符、位運算符和其餘運算符。java

6.1 算術運算符

Java中的算術運算符主要用來組織數值類型數據的算術運算,按照參加運算的操做數的不一樣能夠分爲一元運算符和二元運算符。web

6.1.1 一元運算符

算術一元運算一共有3個,分別是-、++和–。具體說明參見表6-1。編程

表6-1一元算術運算app

運 算 符 名  稱 說  明 例  子
- 取反符號 取反運算 b = -a
++ 自加一 先取值再加一,或先加一再取值 a++或++a
自減一 先取值再減一,或先減一再取值 a–或–a

表6-1中,-a是對a取反運算,a++或a–是在表達式運算完後,再給a加一或減一。而++a或–a是先給a加一或減一,而後再進行表達式運算。ide

示例代碼以下:優化

int a = 12;
System.out.println(-a); ①int b = a++; ②
System.out.println(b);
b = ++a; ③
System.out.println(b);1234567

輸出結果以下:編碼

-12
12
141234

上述代碼第①行是-a,是把a變量取反,結果輸出是-12。第②行代碼是先把a賦值給b變量再加一,即先賦值後++,所以輸出結果是12。第③行代碼是把a加一,而後把a賦值給b變量,即先++後賦值,所以輸出結果是14。spa

6.1.2 二元運算符

二元運算符包括:+、-、*、/和%,這些運算符對數值類型數據都有效,具體說明參見表6-2。

表6-2二元算術運算

運 算 符 名  稱 說  明 例  子
+ 求a加b的和,還可用於String類型,進行字符串鏈接操做 a + b
- 求a減b的差 a - b
* 求a乘以b的積 a * b
/ 求a除以b的商 a / b
% 取餘 求a除以b的餘數 a % b

示例代碼以下:

//聲明一個字符類型變量char charNum = 'A';     
// 聲明一個整數類型變量int intResult = charNum + 1;            ①
System.out.println(intResult);

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

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

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

intResult = intResult + 8;
intResult = intResult % 7;
System.out.println(intResult);

System.out.println("-------");// 聲明一個浮點型變量double doubleResult = 10.0;
System.out.println(doubleResult);

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

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

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

doubleResult = doubleResult + 8;
doubleResult = doubleResult % 7;
System.out.println(doubleResult);12345678910111213141516171819202122232425262728293031323334353637

輸出結果以下:

66
65
130
65
3
-------
10.0
9.0
18.0
9.0
3.0123456789101112

上述例子中分別對數值類型數據進行了二元運算,其中代碼第①行將字符類型變量charNum與整數類型進行加法運算,參與運算的該字符('A')的Unicode編碼65。其餘代碼比較簡單再也不贅述。

6.1.3 算術賦值運算符

算術賦值運算符只是一種簡寫,通常用於變量自身的變化,具體說明參見表6-3。

表6-3 算術賦值符

運 算 符 名  稱 例  子
+= 加賦值 a += b、a += b+3
-= 減賦值 a -= b
*= 乘賦值 a *= b
/= 除賦值 a /= b
%= 取餘賦值 a %= b

示例代碼以下:

int a = 1;int b = 2;
a += b;     // 至關於 a = a + bSystem.out.println(a);

a += b + 3; // 至關於 a = a + b + 3System.out.println(a);
a -= b;     // 至關於 a = a - bSystem.out.println(a);

a *= b;     // 至關於 a=a*bSystem.out.println(a);

a /= b;     // 至關於 a=a/bSystem.out.println(a);

a %= b;     // 至關於 a=a%bSystem.out.println(a);123456789101112131415161718

輸出結果以下:

3
8
6
12
6
01234567

上述例子分別對整型進行了+=、-=、*=、/=和%=運算,具體語句再也不贅述。

6.2 關係運算符

關係運算是比較兩個表達式大小關係的運算,它的結果是布爾類型數據,即true或false。關係運算符有6種:==、!=、>、<、>=和<=,具體說明參見表6-4。

表6-4 關係運算符 
[圖片上傳失敗…(image-24a409-1510533942975)]

**提示 ==和!=能夠應用於基本數據類型和引用類型。當用於引用類型比較時,比較的是兩個引用是否指向同一個對象,但當時實際開發過程多數狀況下,只是比較對象的內容是否至關,不須要比較是否爲同一個對象。 
** 
示例代碼以下:

int value1 = 1;int value2 = 2;if (value1 == value2) {
    System.out.println("value1 == value2");
}if (value1 != value2) {
    System.out.println("value1 != value2");
}if (value1 > value2) {
    System.out.println("value1 > value2");
}if (value1 < value2) {
    System.out.println("value1 < value2");
}if (value1 <= value2) {
    System.out.println("value1 <= value2");
}1234567891011121314151617181920212223

運行程序輸出結果以下:

value1 != value2
value1 < value2
value1 <= value21234

6.3 邏輯運算符

邏輯運算符是對布爾型變量進行運算,其結果也是布爾型,具體說明參見表6-5。

表6-5 邏輯運算符 
[圖片上傳失敗…(image-6280e7-1510533942975)]

提示 短路與(&&)和短路或(||)可以採用最優化的計算方式,從而提升效率。在實際編程時,應該優先考慮使用短路與和短路或。

示例代碼以下:

int i = 0;int a = 10;int b = 9;if ((a > b) || (i == 1)) {                          ①
    System.out.println("或運算爲 真");
} else {
    System.out.println("或運算爲 假");
}if ((a < b) && (i == 1)) {                      ②
    System.out.println("與運算爲 真");
} else {
    System.out.println("與運算爲 假");
}if ((a > b) || (a++ == --b)) {                  ③
    System.out.println("a = " + a);
    System.out.println("b = " + b);
}1234567891011121314151617181920

上述代碼運行輸出結果以下:

或運算爲 真
與運算爲 假123

其中,第①行代碼進行短路計算,因爲(a > b)是true,後面的表達式(i == 1)再也不計算,輸出的結果爲真。相似地,第②行代碼也進行短路計算,因爲(a < b)是false,後面的表達式(i == 1)再也不計算,輸出的結果爲假。

代碼第③行中在條件表達中摻雜了++和—運算,因爲(a > b)是true,後面的表達式(a++ == –b)再也不計算,因此最後是a = 10, b = 9。若是把短路或(||)改成邏輯或(|),那麼輸出的結果就是a = 11, b = 8了。


配套視頻

http://edu.51cto.com/topic/1246.html

配套源代碼

http://www.51work6.com/book/java1.php

《Java從小白大牛》紙質版:

京東地址

《Java從小白大牛》電子版:

百度閱讀地址

相關文章
相關標籤/搜索