三元操作符if
Java中 Boolean-e ? value0 : value1 这个表达式中的三元操作符和if-else语句有什么区别? 在应用的范围上,哪个更广? 能用三元操作符的地方可否都能换成if-else语句?如果能,有什么好处和坏处。 能用if-else语句的地方可否都能换成三元操作符?如果能,有什么好处和坏处。
能用?:的地方肯定能换成 if-else 而用if-else的地方不一定能换成?: 因为if-else中可能还有别的逻辑需要执行.... 例如 a = b ? c : d; // b=true时 a = c 否则 a = d 这句就能用if-else替换 而如果是if-else if(....){ .... } else { .... } 那么大括号之间还可以容纳除赋值操作之外的其他逻辑 说到底 ?: 是一个运算符 而if-else是语句 至于应用范围,只要考虑了程序的简练,和可读性就可以了。比如三元套三元这样的必然让人读着晕,不如 if-else 了。 反正只要考虑到代码简练高效,同时以后自己或者别人看不范晕就好了。