Все просто! Использую такое правило во всех языках:
? и : используем там где нужно задать какое то значение и на результат значения влияет условие, так же запись должна быть краткой, примеры:
// нахождение максимального значения
max = a > b ? a : b;
// нахождения первого валидного значения
result = x != null ? x : y != null ? y : null;
// возврат значения по условию
return exists ? a : b;
if / else / switch /case используем в остальных случаях, пример:
// тут не разложить в тернарный оператор
if (visible) {
a = displayObject.x; // установка переменной a
} else {
b = displayObject.y; // установка переменой b
}