Зло? Смотри, они просто разные.
if
это утверждение. (test ? a : b)
это выражение. Они не одно и то же.
Существуют выражения для выражения значений. Заявления существуют для выполнения действий. Выражения могут появляться внутри операторов, но не наоборот. Таким образом, вы можете использовать троичные выражения в других выражениях, например, для терминов в суммировании, или для аргументов метода, и так далее. Вам не нужно , но вы можете, если хотите . В этом нет ничего плохого. Некоторые люди могут сказать, что это зло, но это их мнение.
Одно из значений троичного выражения заключается в том, что оно позволяет обрабатывать как истинные, так и ложные случаи. if
заявления не делают.
Если вы беспокоитесь о читабельности, вы можете отформатировать их.
Каким-то образом «зло» вползло в словарь программирования. Я хотел бы знать, кто первым бросил это. (На самом деле, у меня есть подозреваемый - он в Массачусетском технологическом институте.) Я бы предпочел, чтобы у нас были объективные причины для оценочных суждений в этой области, а не только вкус людей и их имена.