问号表达式,问号表达式和if else 效率高

http://www.itjxue.com  2023-01-13 12:04  来源:未知  点击次数: 

C语言问号表达式

……?……:……

式A?B:C值为:若A为真,则B;若A为假,则C。

但有一点是值得注意的,那就是问号表达式的结合性,问号表达式是从右往左的运算方向

尤其是当问号表达式嵌套使用时得注意这个问题,例如

代码:

int a=1,b=2,c=3,d=4;

printf("%d",ab?a:cd?c:d);

正确结果是:1

因为先执行的是cd?c:d,会返回c,然后执行ab?a:c

因此得到的结果就是1(可以在编译器上实验一下)

C语言中“?”和“:”是什么意思????

“?”在C语言中表示疑问。

“:”在C语言中表示判断的结果选择。

【例子】

(ab)?

解释:判断表达式是否能够通过,如果能通过,那么说明才能进行之后的操作,如果不能通过,就选择后一种结果。

(ab)?y:n

解释:如果A大于B,那么选择Y的结果,如果A小于B,那么选择N的结果。

Matlab 中 有类似C语言里面的问号表达式么?

没有.

如果想有MATLAB实现C语言里面的问号语句可以使用条件语句。

if

...

end

问号表达式原型: object ? set1:set2 ;

注解: 如果 object 为真 则 整个 问号表达式的值为 : set1 ,否则 为: set2

Demo:String k = (1==1)?"就会执行这句":"无缘执行这句";

问号表达式嵌套使用: objectA ? set1:objectB?set2:set3

注解: 其实 问号表达式是个顺序判断的语句,理解这句话就可以理解嵌套语句了;

objectA 为 假 则会执行 objectB的判断 objectB 为true 则显示 set2 否则显示 set3 那么整体语句的结果就为 set3

objectB 为真 则显示为set1 整体语句为 set1

(责任编辑:IT教学网)

更多

推荐金山WPS文章