C語言的三元操作符(也稱為條件操作符)是一種簡潔的條件表達式,其語法形式為 條件 ? 表達式1 : 表達式2
。當條件為真(非零)時,整個表達式求值為表達式1的值,否則為表達式2的值。三元操作符適用于以下場景:
簡單的條件判斷:當需要根據一個簡單條件快速決定變量值或執行不同代碼塊時,可以使用三元操作符。例如,根據輸入值的正負設置變量的符號。
int sign = (x > 0) ? 1 : -1;
函數參數選擇:在需要根據條件選擇不同參數傳遞給函數時,三元操作符可以使代碼更簡潔。
void print_square(int x) {
printf("%d\n", x * x);
}
void print_cube(int x) {
printf("%d\n", x * x * x);
}
int main() {
int choice = 1; // 假設這是用戶輸入的選項
(choice == 1) ? print_square(5) : print_cube(5);
return 0;
}
數組或結構體成員選擇:在創建數組或結構體時,可以使用三元操作符來根據條件選擇不同的元素或成員。
int scores[3] = {70, 80, 90};
char grade = (scores[0] >= 90) ? 'A' : (scores[0] >= 80) ? 'B' : 'C';
字符串選擇:當需要根據條件選擇不同的字符串字面量時,三元操作符同樣適用。
const char* get_status(int is_online) {
return is_online ? "Online" : "Offline";
}
初始化時的條件賦值:在變量初始化時,如果初始值取決于某個條件的結果,可以使用三元操作符。
int x = (y > z) ? y : z; // 選擇y和z中的較大值
需要注意的是,雖然三元操作符可以使代碼更簡潔,但在復雜的邏輯中過度使用可能會降低代碼的可讀性。在這種情況下,使用標準的if-else
語句可能更為合適。