考虑到评估时间,以下两个是等价的吗?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
或者它们只是在语法上不同?
考虑到评估时间,以下两个是等价的吗?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
或者它们只是在语法上不同?
不同之处在于后一个站可用于根据条件返回值。
例如,如果您有以下语句:
if (SomeCondition())
{
text = "Yes";
}
else
{
text = "No";
}
使用三元运算符,您将编写:
text = SomeCondition() ? "Yes" : "No";
请注意第一个示例如何根据条件执行语句,而第二个示例如何根据条件返回值。
嗯......在前一种情况下,您可以使用任意数量或类型(表达式与语句)的代码来代替code1
and code2
。在后一种情况下,它们必须是有效的表达式。
是的是的。
唯一的好处就是节省代码行数。
是的,这是两种不同的语法形式,它们的工作方式相同,并且最有可能相同的代码将由编译器发出。