1. 程式人生 > >C# 條件表達式max=(a>b)?a:b;含義

C# 條件表達式max=(a>b)?a:b;含義

eight font 語義 運算優先級 又是 -s 運算符 使用 算術運算

a?b:c

這個是條件表達式,表示如果a為真,則表達式值為b,如果a為假,則表達式值為c
條件表達式具體說明如下
條件語句:

if(a>b) max=a;
else max=b;


可用條件表達式寫為

max=(a>b)?a:b;


執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max.
使用條件表達式時,還應註意以下幾點:
1) 條件運算符的運算優先級低於關系運算符和算術運算符,但高於賦值符.
因此

max=(a>b)?a:b


可以去掉括號而寫為

max=a>b?a:b


2) 條件運算符?和:是一對運算符,不能分開單獨使用.


3) 條件運算符的結合方向是自右至左.
例如:

a>b?a:c>d?c:d


應理解為

a>b?a:(c>d?c:d)


這也就是條件表達式嵌套的情形,即其中的表達式3又是一個條件表達式.

C# 條件表達式max=(a>b)?a:b;含義