- 變數 (variable)
- 數值 (value)
- 方法呼叫 (method invocation)
運算式會計算出一個結果,通常會是一個數值,因此運算式的結果通常也具有型態。
運算式細分的種類有非常多,我們僅簡單介紹幾種,包括常數運算式、呼叫方法,及利用運算子組成的運算式。
以下程式示範基本運算式 (primary expression) ,也就是直接以基本資料型態 (primitive data type) 的數值當成運算式
class ConstExpr { public static void main(String[] args) { if (true) { System.out.println("Hello, world!"); } } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:ConstExpr.java 功能:示範基本運算式 作者:張凱慶 時間:西元 2010 年 10 月 */
第 3 行
if (true) {
if 陳述 (statement) 中的小括弧為條件 (condition) ,須為計算結果為布林值的運算式,這裡直接以布林值 true 代入。 if 同英文字義,如果為真,就會執行底下大括弧中的陳述。
另外,第 4 行呼叫方法也為運算式
System.out.println("Hello, world!");
編譯執行這個程式,結果如下
由運算子與運算元所組成的運算式,會依結合規則及優先次序進行計算,全部運算子如下列表
名稱 | 優先順序 |
---|---|
後綴 | expr++, expr-- |
單元 | ++expr, --expr, +expr, -expr, ~, ! |
乘除 | *, /, % |
加減 | +, - |
位移 | <<, >>, >>> |
關係 | <, >, <=, >=, instanceof |
相等性 | ==, != |
位元且 | & |
位元互斥或 | ^ |
位元包含或 | | |
邏輯且 | && |
邏輯或 | || |
條件 | ? : |
指派 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
小括弧雖然沒有列在表中,但小括弧具有最高的優先權,因此當運算式中任何部份需要先計算時,可以直接用小括號圍起來,無須考量運算子的優先次序。如以下程式
class ParenExpr { public static void main(String[] args) { System.out.println(15 + 2 * 8); System.out.println(15 + (2 * 8)); System.out.println((15 + 2) * 8); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:ParenExpr.java 功能:示範小括弧影響計算的優先次序 作者:張凱慶 時間:西元 2010 年 10 月 */
編譯後執行,結果如下
中英文術語對照 | |
---|---|
運算式 | expression |
運算元 | operand |
運算子 | operator |
變數 | variable |
數值 | value |
方法呼叫 | method invocation |
基本運算式 | primary expression |
基本資料型態 | primitive data type |
陳述 | statement |
條件 | condition |
參考資料
http://download.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html
沒有留言:
張貼留言