【问题标题】:Java boolean return if statement [duplicate]Java布尔返回if语句[重复]
【发布时间】:2016-11-08 10:29:08
【问题描述】:

有人可以用简单的英语解释一下这句话背后的逻辑吗?

return mContainsLoadingRow ? (getContentDataSize() + 1) : getContentDataSize();

假设 mContainsLoadingRow 是一个布尔值,如果 mContainsLoadingRowtrue

然后返回getContentDataSize() + 1

如果没有,请返回getContentDataSize()

这是看待这个问题的正确方式吗?

【问题讨论】:

  • 是的。你也可以写成if(mContainsLoadingRow ) return getContentDataSize() + 1 else return getContentDataSize()

标签: java android boolean logic


【解决方案1】:

这个完整的表达式被称为 Ternary Operator in Java

代码声明

mContainsLoadingRow ? (getContentDataSize() + 1) : getContentDataSize();
        ||                       ||                         ||
 //boolean expression      //return if true          //return if false

在这段代码中

mContainsLoadingRow 是一个布尔变量,包含truefalse。您还可以使用任何布尔表达式更改mContainsLoadingRow,例如 (a>b or b==a or b

? (question mark) :- 让我们可以判断是真是假。

如果true 将返回表达式(getContentDataSize() + 1)

如果false 则表达式getContentDataSize() 将返回值。

【讨论】:

  • 另外一种写法是“return getContentDataSize() + mContainsLoadingRow ? 1 : 0;”
【解决方案2】:
int x = 0;
if (0 < 1){
  x = 2;
}else{
  x = 42;
}
// in short:
x = (0<1) ? 2 : 42;

是的,你是对的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 2015-09-01
    • 2013-10-01
    • 2014-12-19
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 2011-04-05
    相关资源
    最近更新 更多