答案 0 :(得分:49)
如果a ? b : c
为真,则b
表达式评估为a
;如果c
为a
,则表达式false
。
在大多数语言中,这是三元运算符的唯一示例,它是一个带三个参数的运算符。
答案 1 :(得分:18)
条件表达
Conditional Expression
<------------------------>
(x < y) ? x : y
|_____| |________|
Test Conditional
Expression Operator
'?'和':'构成条件运算符。
答案 2 :(得分:9)
三元陈述
答案 3 :(得分:3)
答案 4 :(得分:3)
(作为一个讨厌的挑剔者:出于某种原因,尽管问题是关于语句,但大多数人都会给出关于运算符的答案。)
首先,您的示例中的内容确实是语句。它被称为表达式语句。 C ++中有不同类型的语句(声明语句,跳转语句,迭代语句等),而这恰好是表达式语句。所以,如果您的问题确实是关于什么样的语句,那么迂腐正确的答案将是:它是表达式语句。故事结束。
现在,其次,如果您想深入了解,可能需要选择此表达式语句中使用的表达式。在这种情况下,表达式在顶层有一个条件?:
运算符。该运算符的第一个操作数是使用关系>
运算符的子表达式......依此类推。
答案 5 :(得分:2)
这些类型的陈述是什么? c ++调用:
你问了一个有多个答案的问题。从技术上讲,它将取决于所使用的实际语言,但您所展示的内容对于具有通用语法的大量语言来说非常典型。
语句只是表示可以被视为一个单元的一系列令牌的一种方式。语句通常以分号“;”结尾。有些陈述很简单,如
print 0;
有一个关键字和一个文字,而其他更复杂,如
a = foo(c*10) + 5;
其中包含一个返回子表达式和一个算术子表达式的赋值,一个带有参数解析的函数调用,该参数解析涉及一个乘法子表达式,其变量查找作为操作数之一。
您的陈述是表达式的结果。
testNumber > 1 ? true : false ;
==================================== ======================
expression that needs evaluated end-of-statement marker
条件运算符有时被称为“三元运算符”。它有一个运算符和三个(因此三元)操作数。
testNumber > 1 ? true : false
============== --- ===== --- ======
| | | | |
| | Exp2 | Exp3
| | |
| └ Operator ┘
|
Exp1 (which has to be a boolean expression)
Exp1或Exp2的结果作为条件运算符表达式的值返回,如果“Condition”为真,则返回Exp1,否则返回Exp2。
由于各种原因,条件(三元)运算符可能对编码人员不熟悉。
当我们想要根据某些条件返回不同的东西时,它的一个典型用途是简化代码。
例如,给定
a = 0;
b = 5;
我们可以轻松地在一行中返回除法结果
return (a == 0) ? NaN : b/a; //Not-A-Number
我们可以使用表达式
构建返回return (b/a);
但我们希望防止除零。使用if / else块会导致代码膨胀。
if ( a == 0)
{
return NaN;
}
else
{
return b/a;
}
To ternary or not to ternary?
Which coding style you use for ternary operator?
Is this a reasonable use of the ternary operator?
答案 6 :(得分:1)
这意味着
//If this is true,
testNumber > 1
//testNumber is bigger than 1, then
true
//it is a true statemant, or
false
//else statement is faulse
或者你可以这样看:
if(testNumber > 1) {
true
}
else {
false
}
答案 7 :(得分:1)
三元运营商。
您的表达式用于查找值是true还是false。 例如,
boolean c = testNumber&gt; 1? true:false;
这里基于testNumber的值,c将为true或false。
答案 8 :(得分:0)
这是一个带有三元(或条件)运算符的表达式。