I just always prefer clarity over brevity ... I suppose if properly commented, ?: can be OK (certainly a SINGLE ?: does not return true from my devil function -- which, curiously enough, is: boolean isDevil = (hasQuestionColon) ? ((hasMoreThanOne) ? : true : false) : false, I guess I just find if/else's much easier to follow, and much easier to go back and modify later, whereas the syntax of nested ?:'s is so fragile that you have to really work at changing it.... But that's just me