亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

C 語言中的三目運算符

三目運算符是一種比較特殊的運算符,在我們前面的總體運算符介紹中,它被歸在了單獨的一類,也就是其它類別。這個運算符其實更像是一個簡化版的 if 語句,但是卻很簡潔強大。

1. 語法

語句 1 ? 語句 2: 語句 3

當語句 1 中條件成立的時候返回語句 2 的值,如果語句 1 中條件不成立,那么就返回語句 3 的值。

2. 應用場景

在你需要進行一個條件判斷,有真假存在,且輸出語句真假各為一行的時候就可以使用這個三目運算了。

3. 實例

#include <stdio.h>

int main()
{
    int x, y;
    x = 0;
    y = 10;
    printf("%s\n", (x > y) ? "x > y" : "x < y");
    return 0;
}

運行結果:

x < y

這個語句還可以配合賦值語句使用,給變量賦值。

#include <stdio.h>

int main()
{
    int x, y, z;
    x = 0;
    y = 10;
    z = (x > y) ? 20 : 50;
    printf("%d\n", z);
    return 0;
}

運行結果:

50

我們在講述 C 語言邏輯運算的時候知道了,在 C 語言中,即使引入了布爾類型,但是在使用 printf 函數輸出的時候,也是沒有辦法來直接輸出布爾類型的,只能是通過輸出整除類型來替代。如果我們想直接輸出布爾類型,可以通過編寫一個小的程序來擴展輸出,將 0 和 1 直接替換為 false 和 true 輸出。但是這樣做如果輸出次數很多是值得寫這樣一個程序的,要是只是像我們測試或者只是單次輸出,那么就顯得有些復雜了。這時候,我們這次介紹的三目運算符就有用武之地了。

#include <stdio.h>
#include <stdbool.h>

int main()
{
    bool x, y, z;
    x = false;
    y = true;
    printf("x = %s; y = %s\n", x ? "true" : "false", y ? "true" : "false");
    z = x || y;
    printf("x || y = %s\n", z ? "true" : "false");
    z = x && y;
    printf("x && y = %s\n", z ? "true" : "false");
    printf("!x = %s\n", !x ? "true" : "false");
    printf("!y = %s\n", !y ? "true" : "false");
    return 0;
}

運行結果:

x = false; y = true
x || y = true
x && y = false
!x = true
!y = false

在上面的代碼中每個 printf 函數都使用了本節介紹的三目運算符。其實就是在每個 printf 函數里都內置了一個判斷語句。這個判斷語句會根據傳入的變量的值來進行判斷,分別用 true 和 false 來替換 1 和 0 ,這樣就可以實現布爾值的輸出了。

4. 小結

作為 C 語言運算符中比較特殊的一員,三目運算符起到的作用更像是條件句。但是卻更加的精簡。當條件成立與不成立的時候分別執行冒號分隔前和冒號分隔后面的語句,而判斷的條件,則是由問號與后面的語句進行分隔。這個運算符經常會嵌入語句中執行。