java三目运算符

2025-01-21 14:05:22
推荐回答(3个)
回答1:

看到复杂嵌套的三目运算不要慌,慢慢的一层层剖析你会发现其实也就那样。

根据三目定义 exp?st1:st2,exp的结果是个boolean类型的数据,如果是true则执行st1,如果为false则执行st2,所以 三目等价于if(exp){st1}else{st2},由此可见上述你给的可以更改成如下代码:

if(year>a.year){
                     return 1;
                 }else{
                     if(year                         return -1;
                     }else{
                         if(month>a.month){
                            return 1; 
                         }else{
                             if(month                                 return -1;
                             }else{
                                if(day>a.day){
                                    return 1;
                                } else{
                                    if(day                                        return -1;
                                    }else{
                                        return 0;
                                    }
                                }
                             }
                         }
                     }
                 }

回答2:

三目运算符a > b ? a : b运算规则是:如果?前面的等式为true,即a>b,则执行返回a,否则返回b;
先判断变量year是否大于对象a的year值,如果大于就返回1,小于就继续判断year是否小于对象a的year值,如果小于就返回-1;此后就是year==a.year的情况,依次判断月份和日

回答3:

这么狠的 三目 目测是 嵌套啊 谁写的 思路够强悍啊