1

我认为这个问题是一个一般性的编程问题,但假设我问的是 Java。

以下语句是做什么的?

return a ? (b || c) : (b && c);

我已经在 SO 的许多主题中看到了带有?'s 和:'s 的语法,我在Check if at least two of two booleans are true 中发现了这个特殊的语法

但是我不知道它们是什么意思,那么如何使用它们,我相信这对我来说非常有用。

谢谢 !

4

6 回答 6

7

这就是条件运算符。它的意思是:

condition ? value-if-true : value-if-false;

因此,在您的情况下,它返回b || cifa为 true 和b && cifa为 false 。

于 2013-06-04T05:25:56.670 回答
3

这被称为三元语句;它是 if-else 块的简写——你可以在谷歌上搜索更多信息。

你的例子相当于

if (a) {
   return (b || c);
} else {
   return (b && c);
}
于 2013-06-04T05:26:39.600 回答
2
condition ? first statement : second statement

如果条件为真,则执行第一条语句,否则执行第二条语句

于 2013-06-04T05:27:24.237 回答
0

它是三元运算符,整个语句扩展为更像这样的东西:

if a == true then
  if b == true or c == true then
    return true
else 
  if b == true and c == true then
    return true

正如您的链接所说,以这种方式应用时,检查是否至少有三分之二的布尔值是正确的!

于 2013-06-04T05:32:01.110 回答
0

它是一个条件运算符...就像 if 和 else ....

例如 - -

a<b ? 4 :5      where a= 2 and b=5

因为 a 小于 b.... 那么这个运算符将返回 4... 否则它返回 5....

简而言之...如果您的条件即声明之前?是正确的那么它返回第一个值..即冒号之前的语句....否则它返回第二个值......

于 2013-06-04T05:34:37.347 回答
0

根据您的代码,返回一个 ? (b || c) : (b && c);

结果将是这样的:

如果 a == true ,则结果 = b || c 否则结果 = b && c

它是一个三元运算符 & 用于大多数语言 C、C++、java、Javascript

于 2013-06-04T06:28:18.717 回答