- Euphoria 教程
- Euphoria - 首頁
- Euphoria - 概述
- Euphoria - 環境
- Euphoria - 基本語法
- Euphoria - 變數
- Euphoria - 常量
- Euphoria - 資料型別
- Euphoria - 運算子
- Euphoria - 分支
- Euphoria - 迴圈型別
- Euphoria - 流程控制
- Euphoria - 短路
- Euphoria - 序列
- Euphoria - 日期和時間
- Euphoria - 過程
- Euphoria - 函式
- Euphoria - 檔案I/O
- Euphoria 有用資源
- Euphoria - 快速指南
- Euphoria - 庫例程
- Euphoria - 有用資源
- Euphoria - 討論
Euphoria - 運算子
Euphoria 提供了一套豐富的運算子來操作變數。我們可以將所有 Euphoria 運算子分為以下幾組:
- 算術運算子
- 關係運算符
- 邏輯運算子
- 賦值運算子
- 其他運算子
算術運算子
算術運算子在數學表示式中的使用方式與在代數中相同。下表列出了算術運算子。假設整數變數 A 為 10,變數 B 為 20,則:
| 運算子 | 描述 | 示例 |
|---|---|---|
| + | 加法 - 將運算子兩側的值相加 | A + B 將得到 30 |
| - | 減法 - 從左運算元中減去右運算元 | A - B 將得到 -10 |
| * | 乘法 - 將運算子兩側的值相乘 | A * B 將得到 200 |
| / | 除法 - 將左運算元除以右運算元 | B / A 將得到 2 |
| + | 一元加 - 這對變數值沒有影響。 | +B 得到 20 |
| - | 一元減 - 這將建立給定變數的負值。 | -B 得到 -20 |
關係運算符
Euphoria 語言支援以下關係運算符。假設變數 A 為 10,變數 B 為 20,則:
| 運算子 | 描述 | 示例 |
|---|---|---|
| = | 檢查兩個運算元的值是否相等,如果相等,則條件為真。 | (A = B) 為假。 |
| != | 檢查兩個運算元的值是否相等,如果不相等,則條件為真。 | (A != B) 為真。 |
| > | 檢查左運算元的值是否大於右運算元的值,如果大於,則條件為真。 | (A > B) 為假。 |
| < | 檢查左運算元的值是否小於右運算元的值,如果小於,則條件為真。 | (A < B) 為真。 |
| >= | 檢查左運算元的值是否大於或等於右運算元的值,如果大於或等於,則條件為真。 | (A >= B) 為假。 |
| <= | 檢查左運算元的值是否小於或等於右運算元的值,如果小於或等於,則條件為真。 | (A <= B) 為真。 |
邏輯運算子
下表列出了邏輯運算子。假設布林變數 A 為 1,變數 B 為 0,則:
| 運算子 | 描述 | 示例 |
|---|---|---|
| and | 稱為邏輯與運算子。如果兩個運算元都不為零,則條件為真。 | (A and B) 為假。 |
| or | 稱為邏輯或運算子。如果兩個運算元中任何一個不為零,則條件為真。 | (A or B) 為真。 |
| xor | 稱為邏輯異或運算子。如果其中一個為真,則條件為真;如果兩個運算元都為真或都為假,則條件為假。 | (A xor B) 為真。 |
| not | 稱為邏輯非運算子,它否定結果。使用此運算子,真變為假,假變為真。 | not(B) 為真。 |
您還可以將這些運算子應用於除 1 或 0 之外的數字。約定是:零表示假,非零表示 *真*。
賦值運算子
Euphoria 語言支援以下賦值運算子:
| 運算子 | 描述 | 示例 |
|---|---|---|
| = | 簡單賦值運算子,將值從右運算元賦值給左運算元。 | C = A + B 將 A + B 的值賦給 C |
| += | 加法賦值運算子,它將右運算元新增到左運算元,並將結果賦給左運算元。 | C += A 等效於 C = C + A |
| -= | 減法賦值運算子,它從左運算元中減去右運算元,並將結果賦給左運算元。 | C -= A 等效於 C = C - A |
| *= | 乘法賦值運算子,它將右運算元與左運算元相乘,並將結果賦給左運算元。 | C *= A 等效於 C = C * A |
| /= | 除法賦值運算子,它將左運算元除以右運算元,並將結果賦給左運算元。 | C /= A 等效於 C = C / A |
| &= | 連線運算子 | C &= {2} 與 C = {C} & {2} 相同 |
注意 - 賦值語句中使用的等號 '=' 不是運算子,它只是語法的一部分。
其他運算子
Euphoria 語言支援一些其他運算子。
& 運算子
可以使用“&”運算子連線任何兩個物件。結果是一個序列,其長度等於連線物件的長度之和。
例如:
#!/home/euphoria-4.0b2/bin/eui
sequence a, b, c
a = {1, 2, 3}
b = {4}
c = {1, 2, 3} & {4}
printf(1, "Value of c[1] %d\n", c[1] )
printf(1, "Value of c[2] %d\n", c[2] )
printf(1, "Value of c[3] %d\n", c[3] )
printf(1, "Value of c[4] %d\n", c[4] )
這將產生以下結果:
Value of c[1] 1 Value of c[2] 2 Value of c[3] 3 Value of c[4] 4
Euphoria 運算子的優先順序
運算子優先順序決定了表示式中項的分組。這會影響表示式的計算方式。某些運算子的優先順序高於其他運算子;例如,乘法運算子的優先順序高於加法運算子。
例如,x = 7 + 3 * 2
這裡,x 被賦值為 13,而不是 20,因為運算子 * 的優先順序高於 +。
因此,它首先計算 3*2,然後加到 7 中。
這裡,優先順序最高的運算子出現在表的最上方,優先順序最低的運算子出現在表的最下方。在表示式中,首先計算優先順序較高的運算子。
| 類別 | 運算子 | 結合性 |
|---|---|---|
| 字尾 | 函式/型別呼叫 | |
| 一元 | + - ! not | 右到左 |
| 乘法 | * / | 左到右 |
| 加法 | + - | 左到右 |
| 連線 | & | 左到右 |
| 關係 | > >= < <= | 左到右 |
| 相等 | = != | 左到右 |
| 邏輯與 | and | 左到右 |
| 邏輯或 | or | 左到右 |
| 邏輯異或 | xor | 左到右 |
| 逗號 | , | 左到右 |
廣告