多個? : 的嵌套問題
return count > r.count ? 1 :
count < r.count ? -1 : 0;
這段代碼中用了多個 ? : 嵌套 我搞不清楚他們之間的關係
最好用括號括起來分清楚哪部分是嵌套在哪一部分的
javase?語法
------解决方案-------------------- (count > r.count) ? 1 :(
( count< r.count) ? -1 : 0)
当红色括号内为真时结果是1,为假时,取最后括号中的值,而这个值又是根据绿色括号内的真假判断的,为真是-1,为假是0,
判断的结果是,count>r.count 取1; count<r.count取-1,count=r.count取0
------解决方案--------------------你问的这个其实是个三目运算,简单来说就是个公式,结构如下:
表达式1 > 表达式2 ?值1 :值2
其实很好理解,其实就是你给计算机出了个问答题,计算机算出
表达式1 > 表达式2 是真,那它就取 值1,否则就取值2,当然值1和值2
又可以是一个公式,就想你这里的用法,这叫嵌套,当有嵌套的时候,
你这里的执行顺序是:自右向左执行,也就是:
先 : count < r.count ? -1 : 0 这样会得到一个结果,假设得到的是 0
后 : count > r.count ? 1 : 0
其实说白了就是: 如果 count > r.count 结果就是 1, 如果count = r.count 结果就是 0
如果count < r.count 结果就是 -1