Quote:
Originally Posted by JkWhoSaysNi
Why? It's only like a 2 line case statement.
It's much neater than either a case statement or if / else and has the same result.
|
You sacrifice code clarity for a few less characters. if(condition) this; else that; makes more sense than (condition? this : that) when you glance at your code. You shouldn't have to comment code that documents itself either.
There is a reason why ?: is considered an operator and not flow control. Because it isn't.
In reference to your original question, the compiler probably skips over statements that don't make sense like 1+1; Why waste CPU resources on some stand alone expression whose computed value is never used? The assumption the compiler makes is that (?:) is used for expressions, not for program flow. To act otherwise is dangerous, especially if the nature of the compiler changes, it may break your code.