我认为这个问题是一般的编程问题, 但我们假设我要求这个用于Java。
以下陈述是做什么的?
return a ? (b || c) : (b && c);
我在SO的许多主题中都看到了?
和:
的语法,我在Check if at least two out of three booleans are true找到了这个特别的
但我不知道他们的意思,所以如何使用它们,我相信这对我来说非常有用。
谢谢!
答案 0 :(得分:7)
这是条件运算符。它意味着:
condition ? value-if-true : value-if-false;
因此,在您的情况下,如果b || c
为真,则返回a
;如果b && c
为假,则返回a
。
答案 1 :(得分:3)
这被称为三元声明;它是if-else块的简写 - 你可以谷歌获取更多信息。
您的示例等同于
if (a) {
return (b || c);
} else {
return (b && c);
}
答案 2 :(得分:2)
condition ? first statement : second statement
如果condition为true,则执行第一个语句,否则执行第二个语句
答案 3 :(得分:0)
这是三元运算符,整个语句扩展为更像这样的东西:
if a == true then
if b == true or c == true then
return true
else
if b == true and c == true then
return true
正如您的链接所说的更优雅的方式,以这种方式检查是否至少有三分之三的布尔是真的!
答案 4 :(得分:0)
它是一个条件运算符... jst喜欢if和else ....
e.g ----
a<b ? 4 :5 where a= 2 and b=5
因为a小于b ....然后此运算符将返回4 ...否则返回5 ....
总之......如果您的情况,即之前的陈述?是正确的然后它返回第一个值..即冒号之前的语句....否则它返回第二个值......答案 5 :(得分:0)
根据你的代码, 回来了? (b || c):( b&amp;&amp; c);
结果将如下:
如果a == true,则结果= b || C 否则结果= b&amp;&amp; ç
它是一个三元运算符&amp;用于大多数语言C,C ++,java,Javascript