![]() |
Ternary Operator question..
Why doesn't this work:
variable ? function() : function2(); yet this does: x = variable ? function() : function2(); The first example never gets processed. It's easier and neater than using if (var) { function(); } else { function2(); } |
Quote:
1+1; It's just an operator. |
Quote:
Its a very bad programming practice to use it as flow-control. It's not intended for that. |
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. |
Quote:
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. |
Hmmm The compiler was skipping the operation, although it should may be changed so that it is more compatible to C/C++.
|
| All times are GMT +2. The time now is 05:03 AM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.