条件操作符(又称三目运算符)
exp1 ? exp2 : exp3(表达式1?表达式2:表达式3)
上面式子具体意思是:判断表达式1是否为真,如果为真,则执行表达式2的结果;如果表达式1为假,则执行表达式3的结果
以比较两个数的大小为例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//输入两个数,比较这两个数的大小
//方法一:常规解法,直接比较
int main()
{
int a = 0, b = 0, max = 0;
scanf("%d%d", &a, &b);
if (a >= b)
{
max = a;
}
else
{
max = b;
}
printf("%d\n", max);
return 0;
}
//方法二:以函数的方法求解
int MAX(int x, int y)
{
if (x >= y)
{
return x;
}
else
return y;
}
int main()
{
int a = 0, b = 0, max = 0;
scanf("%d%d", &a, &a);
max = MAX(a, b);
printf("%d\n", max);
return 0;
}
//方法三:三目运算符求解
int main()
{
int a = 0, b = 0, max = 0;
scanf("%d%d", &a, &b);
max = (a > b ? a : b); //表达式1为a>b?;表达式2为a;表达式3为b
printf("%d\n", max); //a>b为假,所以max=b=20
return 0;
}
通过上面三个比较两个数的大小的代码,可以看到三目运算符相对比较简单明了,三目运算符的使用很频繁,使用好了往往可以事半功倍。