考虑到评估时间,以下是两个相当的?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
或者它们只是语法不同?
答案 0 :(得分:11)
不同之处在于后一站可用于根据条件返回值。
例如,如果您有以下声明:
if (SomeCondition())
{
text = "Yes";
}
else
{
text = "No";
}
使用三元运算符,您将写:
text = SomeCondition() ? "Yes" : "No";
注意第一个示例如何根据条件执行语句,而第二个根据条件返回值。
答案 1 :(得分:4)
嗯......在前一种情况下,您可以使用任何数量或类型(表达式与语句)代替code1
和code2
。在后一种情况下,它们必须是有效的表达式。
答案 2 :(得分:3)
是&是。
只有利润才能保存代码行。
答案 3 :(得分:1)
是的,这些是两种不同的语法形式,它们的工作方式相同,编译器会发出相同的代码。