Java布尔返回if语句[重复]

Posted

技术标签:

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

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

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

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

然后返回getContentDataSize() + 1

如果没有,请返回getContentDataSize()

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

【问题讨论】:

是的。你也可以写成if(mContainsLoadingRow ) return getContentDataSize() + 1 else return getContentDataSize() 【参考方案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;

是的,你是对的

【讨论】:

以上是关于Java布尔返回if语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java-Runoob:Java 条件语句

带有布尔条件的 if else 语句中的代码[重复]

为啥这个 if 语句不返回布尔值?

布尔函数:if 语句或简单返回

关于java中的if语句

全局布尔值在 addListenerForSingleEventValue 函数内设置,但在以下 if 语句中无法识别 [重复]