我熟悉像这样的三元条件运算符中的多个条件:
( condition A ? value A :
( condition B ? value B :
( condition C ? value C :
...
)
)
)
但是我不明白下面的代码是如何工作的(函数假定返回一个整数:
return (co1.Nr() < co2.Nr() ? -1 :
( co1.Nr() == co2.Nr() ? (co1.Id() < co2.Id() ? -1 :
(co1.Id() == co2.Id() ? 0 : 1)) : 1;
你能解释一下吗?
最佳答案
打破它并理解。例如:考虑第一部分。
return (co1.Nr() < co2.Nr() ? -1 : (all_other_codes);
如果条件
co1.Nr() < co2.Nr()
为true,则否定为-1,否则执行all_other_codes
。其中,all_other_codes
返回另一个integer
。现在来看
all_other_codes
( co1.Nr() == co2.Nr() ? (co1.Id() < co2.Id() ? -1 :
(co1.Id() == co2.Id() ? 0 : 1)) : 1;
如果
co1.Nr() == co2.Nr()
为true,则返回的值(co1.Id() < co2.Id() ? -1 :
(co1.Id() == co2.Id() ? 0 : 1))
否则返回
1
。关于java - 多条件运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33110148/