
- C# 基礎教程
- C# - 首頁
- C# - 概述
- C# - 環境
- C# - 程式結構
- C# - 基本語法
- C# - 資料型別
- C# - 型別轉換
- C# - 變數
- C# - 常量
- C# - 運算子
- C# - 決策
- C# - 迴圈
- C# - 封裝
- C# - 方法
- C# - 可空型別
- C# - 陣列
- C# - 字串
- C# - 結構體
- C# - 列舉
- C# - 類
- C# - 繼承
- C# - 多型
- C# - 運算子過載
- C# - 介面
- C# - 名稱空間
- C# - 預處理器指令
- C# - 正則表示式
- C# - 異常處理
- C# - 檔案I/O
C# - 運算子優先順序
運算子優先順序決定了表示式中項的分組方式。這會影響表示式的求值。某些運算子比其他運算子具有更高的優先順序;例如,乘法運算子的優先順序高於加法運算子。
例如 x = 7 + 3 * 2; 這裡,x 被賦值為 13,而不是 20,因為 * 運算子的優先順序高於 +,所以首先計算 3*2,然後加上 7。
這裡,優先順序最高的運算子出現在表格頂部,優先順序最低的出現在底部。在一個表示式中,優先順序高的運算子先計算。
類別 | 運算子 | 結合性 |
---|---|---|
字尾 | () [] -> . ++ - - | 從左到右 |
一元 | + - ! ~ ++ -- (type)* & sizeof | 從右到左 |
乘法 | * / % | 從左到右 |
加法 | + - | 從左到右 |
移位 | << >> | 從左到右 |
關係 | < <= > >= | 從左到右 |
相等 | == != | 從左到右 |
按位與 | & | 從左到右 |
按位異或 | ^ | 從左到右 |
按位或 | | | 從左到右 |
邏輯與 | && | 從左到右 |
邏輯或 | || | 從左到右 |
條件 | ?: | 從右到左 |
賦值 | = += -= *= /= %=>>= <<= &= ^= |= | 從右到左 |
逗號 | , | 從左到右 |
示例
using System; namespace OperatorsAppl { class Program { static void Main(string[] args) { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 Console.WriteLine("Value of (a + b) * c / d is : {0}", e); e = ((a + b) * c) / d; // (30 * 15 ) / 5 Console.WriteLine("Value of ((a + b) * c) / d is : {0}", e); e = (a + b) * (c / d); // (30) * (15/5) {0}", e); e = a + (b * c) / d; // 20 + (150/5) {0}", e); Console.ReadLine(); } } }
當以上程式碼編譯並執行時,會產生以下結果:
Value of (a + b) * c / d is : 90 Value of ((a + b) * c) / d is : 90
csharp_operators.htm
廣告