Malvado? Olha, eles são apenas diferentes.
if
é uma declaração. (test ? a : b)
é uma expressão. Eles não são a mesma coisa.
Existem expressões para expressar valores. Existem instruções para executar ações. Expressões podem aparecer dentro de instruções, mas não vice-versa. Assim, você pode usar expressões ternárias dentro de outras expressões, como para termos em uma soma, ou para argumentos para um método, e assim por diante.
Você não precisa , mas você pode se você quiser .
Não há nada de errado com isso.
Algumas pessoas podem dizer que é mal, mas essa é a opinião deles.
Um valor de uma expressão ternária faz com que você lide com casos verdadeiros e falsos. if
declarações não.
Se você estiver preocupado com a legibilidade, poderá formatá-los de maneira legível.
De alguma forma, o "mal" penetrou no vocabulário de programação. Eu adoraria saber quem primeiro caiu. (Na verdade, eu tenho um suspeito - ele está no MIT.)
Eu preferiria que tivéssemos razões objetivas para juízos de valor nesse campo, não apenas o gosto e o xingamento das pessoas.