百度對于三目運算子的定義如下:
三目運算子,又稱條件運算子,是計算機語言(c,c++,java等)的重要組成部分,它是唯一有3個運算元的運算子,有時又稱為三元運算子,一般來說,三目運算子的結合性是右結合的,
三目運算子的應用格式如下<運算式1> ? <運算式2> : <運算式3>,意思就是假如運算式1是真,那么就去執行運算式2,否則就執行運算式3.
舉個例子吧
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
printf("%d", a > b ? a : b);
return 0;
}
最后的運行結果為

輸出結果為2,也就是b的值,也就是運算式3的值
這就是對三目運算子的應用因為我們定義了a=0 b=2,a>b結果為假因此直接輸出了b值,值得一提的是三目運算子他輸出的是一個值,可以直接回傳,這樣就簡便了很多
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
/*printf("%d", a > b ? a : b);*///三目運算子
if (a > b)
printf("%d", a);
else
printf("%d",b );
return 0;
}
就例如上面的代碼塊求同樣的東西if陳述句用了四行,但是三目運算子就用了一行,這就是他的便利之處,
就用我之前寫的代碼來說比較三個數大小
我原來的代碼,顯得很復雜,很多
#include<stdio.h>
void bidaxiao(int a, int b)
{
int mid, min;
mid= a > b ? a : b;
printf("輸出最中間的值為:%d\n", mid);
if (mid == a)
min = b;
else min = a;
printf("輸出最小的值為:%d\n", min);
}
int main()
{
int x, y, z, max;
printf("請輸入三個數:\n");
scanf_s("%d %d %d", &x, &y, &z);
if (x > y && x > z)
max = x;
else if (y > x && y > z)
max = y;
else max = z;
printf("輸出最大值為:%d\n", max);
if (max == x)
bidaxiao(y, z);
else if (max == y)
bidaxiao(x, z);
else bidaxiao(x, y);
return 0;
}
但是合理利用了三目運算子
#include<stdio.h>
void Get_Bigger(int a, int b)
{
int mid, min;
mid = a > b ? a : b;
min = (mid == a) ? b : a;
printf("輸出最中間的值為:%d\n", mid);
printf("輸出最小的值為:%d\n", min);
}
int main()
{
int x, y, z, max;
printf("請輸入三個數:\n");
scanf_s("%d %d %d", &x, &y, &z);
max = (x > y && x > z) ? x : (y > z) ? y : z;
printf("輸出最大值為:%d\n", max);
if (max == x)
Get_Bigger(y, z);
else if (max == y)
Get_Bigger(x, z);
else Get_Bigger(x, y);
return 0;
}
就顯得簡便了很多,
因此三目運算子可以幫助我們走很多的彎路,更好的簡化代碼,很實用!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/382036.html
標籤:其他
下一篇:上傳檔案資料并生成縮略圖
