我的理解是:
value = (a > b) ? a : b;
等同于:
if (a > b)
value = a;
else
value = b;
但我无法理解这意味着什么:
编辑(我之前使用的示例不好,这是另一个示例的真实代码):
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
: analytics.newTracker(R.xml.ecommerce_tracker);
如何用 if
、else if
和 else
重写最后一个方程?
最佳答案
您需要第二个条件才能使该三元表达式发挥作用。
value = (a > b) ? a : (b > c) ? c : d;
那么它就会变成:
if (a > b) {
value = a;
} else if (b > c) {
value = c;
} else {
value = d;
}
就您而言:
if (trackerId == TrackerName.APP_TRACKER) {
t = analytics.newTracker(PROPERTY_ID);
} else if (trackerId == TrackerName.GLOBAL_TRACKER) {
t = analytics.newTracker(R.xml.global_tracker);
} else {
t = analytics.newTracker(R.xml.ecommerce_tracker);
}
资源:
关于java - 如何根据 "? :"语句重写多个三元 "if"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402960/