我认为这个问题是一个一般性的编程问题,但假设我问的是 Java。
以下语句是做什么的?
return a ? (b || c) : (b && c);
我已经在 SO 的许多主题中看到了带有?
's 和:
's 的语法,我在Check if at least two of two booleans are true 中发现了这个特殊的语法
但是我不知道它们是什么意思,那么如何使用它们,我相信这对我来说非常有用。
谢谢 !
我认为这个问题是一个一般性的编程问题,但假设我问的是 Java。
以下语句是做什么的?
return a ? (b || c) : (b && c);
我已经在 SO 的许多主题中看到了带有?
's 和:
's 的语法,我在Check if at least two of two booleans are true 中发现了这个特殊的语法
但是我不知道它们是什么意思,那么如何使用它们,我相信这对我来说非常有用。
谢谢 !
这就是条件运算符。它的意思是:
condition ? value-if-true : value-if-false;
因此,在您的情况下,它返回b || c
ifa
为 true 和b && c
ifa
为 false 。
这被称为三元语句;它是 if-else 块的简写——你可以在谷歌上搜索更多信息。
你的例子相当于
if (a) {
return (b || c);
} else {
return (b && c);
}
condition ? first statement : second statement
如果条件为真,则执行第一条语句,否则执行第二条语句
它是三元运算符,整个语句扩展为更像这样的东西:
if a == true then
if b == true or c == true then
return true
else
if b == true and c == true then
return true
正如您的链接所说,以这种方式应用时,检查是否至少有三分之二的布尔值是正确的!
它是一个条件运算符...就像 if 和 else ....
例如 - -
a<b ? 4 :5 where a= 2 and b=5
因为 a 小于 b.... 那么这个运算符将返回 4... 否则它返回 5....
简而言之...如果您的条件即声明之前?是正确的那么它返回第一个值..即冒号之前的语句....否则它返回第二个值......
根据您的代码,返回一个 ? (b || c) : (b && c);
结果将是这样的:
如果 a == true ,则结果 = b || c 否则结果 = b && c
它是一个三元运算符 & 用于大多数语言 C、C++、java、Javascript