看到复杂嵌套的三目运算不要慌,慢慢的一层层剖析你会发现其实也就那样。
根据三目定义 exp?st1:st2,exp的结果是个boolean类型的数据,如果是true则执行st1,如果为false则执行st2,所以 三目等价于if(exp){st1}else{st2},由此可见上述你给的可以更改成如下代码:
if(year>a.year){
return 1;
}else{
if(yearreturn -1;
}else{
if(month>a.month){
return 1;
}else{
if(monthreturn -1;
}else{
if(day>a.day){
return 1;
} else{
if(dayreturn -1;
}else{
return 0;
}
}
}
}
}
}
三目运算符a > b ? a : b运算规则是:如果?前面的等式为true,即a>b,则执行返回a,否则返回b;
先判断变量year是否大于对象a的year值,如果大于就返回1,小于就继续判断year是否小于对象a的year值,如果小于就返回-1;此后就是year==a.year的情况,依次判断月份和日
这么狠的 三目 目测是 嵌套啊 谁写的 思路够强悍啊