介紹 C/C++ 三元運算子的用法,在 C/C++ 使用三元運算子(ternary operator) 好處是程式碼可以看起來比較簡短,
在某些情況 C/C++ 使用三元運算子簡化後程式碼會變得簡潔許多。
C/C++ 三元運算子語法
什麼是三元運算子(ternary operator),簡單說它是 if … else … 的精簡版,
語法如下:1
條件式 ? 條件式為true時執行的陳述句 : 條件式為false時執行的陳述句
C/C++ 三元運算子範例
上面語法看不懂也沒關係,馬上直接看例子吧!
一般寫 if … else … 的例子如下:1
2
3
4
5
6int ret, a = 10, b = 11;
bool flag = true;
if (flag)
ret = a;
else
ret = b;
等價於1
ret = flag ? a : b;
以上就是是 C/C++ 的三元運算子寫法,
馬上就把程式碼縮短成一行,簡單明瞭,第一次寫的時候會不習慣,看久了後就習慣了。
接下來將提供 C/C++ 更多使用三元運算子的情境,讓你在程式碼中更靈活地處理條件判斷。
C/C++ 三元運算子範例:判斷是正數、負數或零
這裡有另一個使用三元運算子的範例,這次是用來確定一個數字是正數、負數還是零,1
2
3
4
5
6
7
8
9
10
int main() {
int number = 10;
// 使用三元運算子判斷數字的正負性
std::cout << "數字是 " << ((number > 0) ? "正數" : (number < 0) ? "負數" : "零") << std::endl;
return 0;
}
C/C++ 三元運算子範例:兩數取最大值
當 C/C++ 需要找出兩個數字中的最大值時,使用三元運算子更加簡單。以下是一個找出兩個數字最大值的範例,在這個例子中,findMax
函式接受兩個整數參數,並使用三元運算子來找出最大值,1
2
3
4
5
6
7
8
9
10
11
12
13
int findMax(int num1, int num2) {
return (num1 > num2) ? num1 : num2;
}
int main() {
std::cout << findMax(1, 2) << std::endl;
std::cout << findMax(4, 3) << std::endl;
return 0;
}
輸出結果如下:1
22
4
也可以將 findMax
函式寫成 MAX 巨集,運用三元運算子的技巧,1
2
3
4
5
6
7
8
9
10
11
12
int main() {
// 使用巨集找出最大值
int maxNumber = MAX(5, 2);
std::cout << "最大的數字是: " << maxNumber << std::endl;
return 0;
}
輸出結果如下:1
最大的數字是: 5
C/C++ 三元運算子範例:判斷奇偶數
以下是 C/C++ 使用三元運算子判斷一個數字是奇數還是偶數的簡單範例,在這個例子中,使用了餘數運算符 %
來判斷一個數字是否能被2整除,如果能整除的話,則是偶數,反之則是奇數,1
2
3
4
5
6
7
8
9
10
int main() {
int number = 5;
// 使用三元運算子判斷奇偶數
std::cout << "數字是 " << ((number % 2 == 0) ? "偶數" : "奇數") << std::endl;
return 0;
}
輸出結果如下:1
數字是 奇數
以上就是 C/C++ 三元運算子介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
參考
C conditional operators - C Programming - c4learn.com
http://www.c4learn.com/c-programming/c-conditional-operators/
三元運算元使用時機|Ternary operators vs if-else statemanet - Cat for Code.
https://catforcode.com/ternary-operators/
C/C++ Ternary Operator - Some Interesting Observations - GeeksforGeeks
https://www.geeksforgeeks.org/cc-ternary-operator-some-interesting-observations/
其它相關文章推薦
C/C++ 新手入門教學懶人包