首页 > 解决方案 > 如何评估 x?y:a?b:c?

问题描述

条件运算符的关联性是从右到左的,所以最右边的条件运算符应该首先被解决(测试 a 是否为真)但是书中提到第一个 x 将被测试

标签: c

解决方案


条件运算符关联到正确的事实意味着x?y:a?b:c将被解析,就好像它已经被写入一样x?y:(a?b:c)。如果它与左边相关联,它会被解析为(x?y:a)?b:c,这几乎肯定是一个惊喜(除非你习惯了 PHP)。

但是这些括号都不会改变执行顺序。条件运算符的第一个操作数总是首先计算。


推荐阅读