
若 expr1 為真,運算結果會是 expr2 的值,若為假,運算結果則是 expr3 的值。
條件運算子通常利用在需要二選一的情況下,例如比較兩個整數取較大的值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { int a = 22; int b = 34; printf ( "a = %d\n" , a); printf ( "b = %d\n" , b); printf ( "%d 較大\n" , a > b ? a : b); return 0; } /* 《程式語言教學誌》的範例程式 檔名:conbigger.c 功能:利用條件運算子兩數中的求得較大值 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,如下

也可以利用在字串中依性別選字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> int main( void ) { int sex1 = 0; int sex2 = 1; printf ( "%s坐在公園的長椅上。\n" , sex1 ? "她" : "他" ); printf ( "%s跑了過來....\n" , sex2 ? "她" : "他" ); return 0; } /* 《程式語言教學誌》的範例程式 檔名:conword.c 功能:利用條件運算子選字 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

條件運算子有時可用來簡化 if-else 陳述,如以下程式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> int main( void ) { int a = 22; int b = 34; int max; if (a > b) { max = a; } else { max = b; } printf ( "max = %d\n" , max); return 0; } /* 《程式語言教學誌》的範例程式 檔名:conmax.c 功能:利用 if-else 選取兩數中的較大值 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,如下

其中 9 到 14 行,便可用以下
9 | max = (a > b) ? a : b; |
來取代。
沒有留言:
張貼留言