三目运算符

作者:fly 发布于:2015-8-4 14:21 分类:Linux

www.forwhat.cn

对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式从不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。[1]

<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果。

可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为是不是条件成立,条件成立为结果1否则为结果2。

 

int a=2;
int c=3;
int b=(a>c)?a:c;
cout<<"b:"<<b<<endl;
这样的结果是b为3
eg:
int a=1,b=2,z;
z=a>b?a:(a>b?a:b);
cout<<"z:"<<z<<endl;
这样输出的结果是:z:2
eg:
int a=1,b=2,z;
z=a>b?a:b;//去了括号
cout<<"z:"<<z<<endl;
这样的输出的结果是:z:2
一般来说,三目运算符的结合性是右结合的
但是这点在ANSI C中并没有明确规定
所以它的执行顺序有时是由编译器决定的
在PHP中运用实例如下:
$a = (1>0) ? "zhen" : 'jia'; // 三目运算符 与下边if 语句 意思一样
if( 1 > 0 ){
$a = "zhen";
}else{
$a = "jia";
}

 

评论:

知道91博客
2015-09-14 22:42
哈哈,这个算是编程很基础很基础的了吧
小俊
2015-08-22 16:32
看不懂
太古神王
2015-08-06 14:06
这是什么语言C++?

发表评论:

 
Powered by emlog sitemap