Considering the evaluation time, are following two equivalent?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Or they are just syntactically different?
Considering the evaluation time, are following two equivalent?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Or they are just syntactically different?
The difference is that the latter station can be used to return a value based on a condition.
For example, if you have a following statement:
if (SomeCondition())
{
text = "Yes";
}
else
{
text = "No";
}
Using a ternary operator, you will write:
text = SomeCondition() ? "Yes" : "No";
Note how the first example executes a statement based on a condition, while the second one returns a value based on a condition.
Well ... In the former case, you can have any amount or type (expression vs statement) of code in place of code1
and code2
. In the latter case, they must be valid expressions.
Yes & Yes.
Only profit is to save lines of code.
Yes, these are two different syntactical forms and will work identically and most likey identical code will be emitted by the compiler.