Java布尔返回if语句[重复]
Posted
技术标签:
【中文标题】Java布尔返回if语句[重复]【英文标题】:Java boolean return if statement [duplicate] 【发布时间】:2016-11-08 10:29:08 【问题描述】:有人可以用简单的英语解释一下这句话背后的逻辑吗?
return mContainsLoadingRow ? (getContentDataSize() + 1) : getContentDataSize();
假设 mContainsLoadingRow 是一个布尔值,如果 mContainsLoadingRow
是 true
,
然后返回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
是一个布尔变量,包含true
或false
。您还可以使用任何布尔表达式更改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语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章
全局布尔值在 addListenerForSingleEventValue 函数内设置,但在以下 if 语句中无法识别 [重复]