2016-11-17 6 views
0

Я изучаю Тернарные операторы прямо сейчас, и я понимаю большую часть этого, но хочу узнать, возможно ли это.Тернарный оператор без ложной опции

нормальный троичный: (состояние)? (result true): (result false);

вопрос заключается в том, как написать один с помощью истинной части без ложных;

(состояние)? (result true) :; или (состояние)? (результат истинный); или Невозможно

ответ

0

Это просто не имеет смысла, поскольку выражения должны представлять конкретное значение.

Вы не можете использовать, если/иначе положения, поскольку они не являются ни одного выражения:

print(if (value > 0) { "yes" } else { "no" });

Но вы можете использовать тройной оператор для "инлайн" оценка:

print(value > 0 ? "yes" : "no");

Предположим, что происходит, если условие оценивается как false и нет «результата» - как компилятор должен знать, что печатать?

+0

Если нет кода, он вызывает ошибку или просто выпрыгивает. Я пытаюсь понять, может ли он использоваться так же, как только оператор if, или это особый способ сделать, если только только – user3476870

+0

В общем, использование тернарного выражения считается плохим стилем программирования - иногда это делает код более удобным для чтения , но обычно сохранение результата в выделенной переменной намного лучше, поскольку дает вам возможность описать, что вы оцениваете, используя имя переменной. – RedXIII

Смежные вопросы