b) ? a : b; 等同于: if (a > b) value = a; else value = b; 但我无法理解这意味着什么: 编辑(我之前使-6ren">
gpt4 book ai didi

java - 如何根据 "? :"语句重写多个三元 "if"?

转载 作者:行者123 更新时间:2023-12-02 07:47:11 24 4
gpt4 key购买 nike

我的理解是:

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);

如何用 ifelse ifelse 重写最后一个方程?

最佳答案

您需要第二个条件才能使该三元表达式发挥作用。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com