条件运算符

我们先来看一段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
char c;
if(x>=10)
{
c='Y';
}else{
c='N';
}
printf("%c\n",c);
}

分析完这段代码,它的需求就是:输入一个数如果这个数大于等于10则输出Y如果这个数小于10则输出N。

但是这个程序过于庞大了,我们可以尝试将它缩小。

比如说这样

1
2
3
4
5
6
7
8
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
char c;
c = x >= 10 ? 'Y' : 'N';
printf("%c\n",c);
}

这个程序将if…else缩小成了c = x >= 10 ? ‘Y’ : ‘N’;

我们来用中文解释一下这行程序。

测试条件?表达式1:表达式2;如果测试条件为真则表达式1为整个表达式唯一结果,如果测试条件为否则表达式2为整个表达式唯一结果。

所以c = x >= 10 ? ‘Y’ : ‘N’;的含义就是,如果x>=10那么这个函数就会变为c=’Y’,如果x<10这个函数就会变为c=’N’。

这就是条件运算符也是c语言中唯一的三元运算符。