第二章:簡單 Java 程式解析
第三章:變數與資料型態
第四章:運算子、運算式與敘述
第五章:選擇性敘述與迴圈
第十章:實例變數與函數、類別變數與函數

運算子、運算式

程式是由許多敘述組成的,而敘述的基本單位是運算元與運算子。 透過本章學習如何進行運算式之資料型態的轉換。

一、認識運算式

  • 運算式由運算元(operand)與運算子(operator)組成

  • 運算元可以是變數或是常數

  • 運算子就是數學上的運算符號

  • 如「+」、「-」、「*」、「/」等

根據運算子所使用的類別可分為:設定、算數、關係、邏輯、條件、逗號以及遞增與遞減運算子。
將變數設值可使用設定運算子

等號(=)並不是「等於」,而是「設定」

二、一元運算子

一元運算子只需要一個運算元

+6; // 表示正6
~a; // 表示取a的1補數
x=-y; // 表示負y的值設定給變數x存放
!a; // a的NOT運算,若a為0,則!a為1,若a不為0,則!a為0

使用!運算元必須為 boolean 型態

一元運算子

意義

+

正號

負號

!

NOT 否定

~

取 1 的補數

三、算術運算子

算術運算子

意義

+

加法

減法

*

乘法

/

除法

%

取餘數

在除法的部分,要注意資料型態的變化。

四、關係運算子與 if 敘述

如果括號中的條件判斷成立,就會執行後面的敘述;若是條件判斷不成立時,則後面的敘述就不會執行。

關係運算子

意義

>

大於

<

小於

>=

大於等於

<=

小於等於

==

等於

!=

不等於

五、遞增與遞減運算子

善用遞增與遞減運算子可提高城市的簡潔程度。

遞增與遞減運算子

意義

++

遞增,變數值加一

遞減,變數值減一

a++ 會先執行整個敘述後再將a的值加 1

++a則先把a的值加 1 後再執行整個敘述

六、邏輯運算子

&& :運算子前後的兩個運算元之傳回直接為真,運算的結果才會為真。

|| :運算子前後只要一個為真,運算的結果就會為真。

a>0 && b>0 // 兩個運算元皆為真,運算結果才為真
a>0 || b>0 // 兩個運算元只要一個為真,運算結果就為真

邏輯運算子

意義

&&

AND 且

||

OR 或

AND :兩者都要為真,運算結果才會為真。

AND

T

F

T

T

F

F

F

F

OR :其中一個為真,運算結果就為真。

OR

T

F

T

T

T

F

T

F

七、括號運算子

( ) 可以提高括號內運算式的優先處理順序

優先順序數字愈小,表示優先順序愈高。
範例

八、運算式

運算式可以由數值、變數或是其他運算元與運算子所組合而成。

運算子

用法

說明

意義

+=

a+=b

a+b 的值放到 a

a=a+b

-=

a-=b

a-b 的值放到 a

a=a-b

*=

a*=b

a*b 的值放到 a

a=a*b

/=

a/=b

a/b 的值放到 a

a=a/b

%=

a%=b

a%b 的值放到 a

a=a%b

九、運算式的型態轉換

允許資料型態暫時轉換成其他型態的情況發生,以不流失資料為前提,即可做不同型態轉換。

根據以下規則來處理型態的轉換:

  • 佔用位元組較少的型態轉換成位元組較多的型態

  • 字元型態會轉換成short型態(字元會取其unicode碼)

  • short型態(2 bytes)遇上int型態(4 bytes),會轉換成int型態

  • int型態會轉換成float型態

  • 運算式中若某個運算元的型態為double,則另一個運算元也會 轉換成double型態

  • 布林型態不能轉換成其它的型態