虽然题主写的表达式很长,看起来很复杂,实际道理时一样的。从左往右一步一步来。
这个是三元操作符,它在每一种语言中的功能和语法都是一样的。
举例:int a=3int b=5
int c= a>b?1:0
解释:a大于的话,c就等于1,否则的话c等于0;
?是判断的意思,: 是否则的意思。
扩展资料:
三元操作符格式
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。
参考资料来源:百度百科-三元运算符
这个是多条件三目运算。是普通三目运算的多条件的情况,是只有一个问号一个冒号的扩展用法。
这种运算要注意是右结合左运算。一般分多行书写,就会看得很明白。
你的这个代码可能是压缩后的代码,或是简洁源码。