1. 程式人生 > >《Java從小白到大牛精簡版》之第6章 運算符(上)

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

java java小 白 java初學者

Java語言中的運算符(也稱操作符)在風格和功能上都與C 和C++極為相似。本章為大家介紹Java語言中一些主要的運算符,包括算術運算符、關系運算符、邏輯運算符、位運算符和其他運算符。

6.1 算術運算符

Java中的算術運算符主要用來組織數值類型數據的算術運算,按照參加運算的操作數的不同可以分為一元運算符和二元運算符。

6.1.1 一元運算符

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

表6-1一元算術運算

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

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

示例代碼如下:

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。

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

與本書免費版對應的還有一個收費版本:

  1. 進入百度閱讀電子書

  2. 進入圖靈社區電子書


本文出自 “「智捷課堂」關東升的博客” 博客,請務必保留此出處http://tonyguan.blog.51cto.com/701759/1981143

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