This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
The terinary operator behaves similar to && and ||. These operators does not evaluate the second expression if they are satisfied with the first expression itself. For example if the first expression is false in an && operator, the second expression is not evaluated, because it expects both to be true. In your expression for the second time when it sees a true?false:........., it takes only false and not evaluate the second part.