1、作用:
定义格式:x=(a>b)?a:b;
作用相当于if...else...判断,即如果括号内表达式为真,则将”:“左边的a赋值给x,否则将”:“右边的b赋值给x。
2、优先问题:
三目运算符的执行方向为自左向右,如:
x=a>b?a:a>b?a:b
相当于
x=a>b?a:(a>b?a:b)
3、类型问题:
三目运算符允许对不同类型的数值进行操作,如下面的程序:
#include<iostream>
using namespace std;
int main()
{
int x=1;
float y=1.5;
cout<<(x>y?x:y)<<endl;
return 0;
}
输出结果:1.5
例:编写一个程序,让用户输入一个字母,如果输入小写字母,原样输出,如果输入大写字母,则转化为小写字母
#include<iostream>
using namespace std;
int main()
{
char a;
cout<<"请输入一个字母"<<endl;
cin>>a;
cout<<(a=(a>='A'&&a<='Z')?(a+32):a)<<endl;
return 0;
}