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:
Using a ternary operator, you will write:
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
andcode2
. 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.