【问题标题】:Can someone explain this syntax or provide a link that will explain this? [duplicate]有人可以解释这个语法或提供一个链接来解释这个吗? [复制]
【发布时间】:2013-11-07 17:16:46
【问题描述】:

我不明白这句话在做什么。

(minute==minuteFloor+1 ? TIME_PICKER_INTERVAL : 0)

谁能解释一下或提供链接

谢谢。

【问题讨论】:

  • 在 Java 中搜索“三元”运算符。
  • 结果 = testCondition ?值1:值2
  • @PradeepSimha 严格来说这是条件运算符,任何有3个参数的运算符都是三元运算符(但java目前只有1个三元运算符;条件运算符)

标签: java android


【解决方案1】:

基本上是

if(minute == minuteFloor + 1) {
 val = TIME_PICKER_INTERVAL;
} else {
 val = 0;
}

【讨论】:

  • 几乎,但不完全是,Number n=(true?1:1.5); 将具有 Double 类型的 n,因此两者并不严格等价。更多详情请见here
【解决方案2】:
myvariable  =   (minute==minuteFloor+1 ? TIME_PICKER_INTERVAL : 0)

在上面的语句中,你使用了 ?: 运算符,称为三元运算符。

它用于以下上下文:

if(condition)
{
//assign some value
}
else
{
//assign some other value
}

所以您的代码类似于以下内容:

if(minute==minuteFloor+1)
{
myvariable=TIME_PICKER_INTERVAL;
}
else
{
myvariable=0;
}

【讨论】:

    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多