return count > r.count ? 1 :
count < r.count ? -1 : 0;
這段代碼中用了多個 ? : 嵌套 我搞不清楚他們之間的關係最好用括號括起來分清楚哪部分是嵌套在哪一部分的javase 語法

解决方案 »

  1.   

     (count > r.count) ? 1 :(( count< r.count)  ? -1 : 0)当红色括号内为真时结果是1,为假时,取最后括号中的值,而这个值又是根据绿色括号内的真假判断的,为真是-1,为假是0,判断的结果是,count>r.count 取1; count<r.count取-1,count=r.count取0
      

  2.   

     (count > r.count) ? 1 :(( count< r.count)  ? -1 : 0)
      

  3.   

    你问的这个其实是个三目运算,简单来说就是个公式,结构如下:表达式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