Условный оператор ?:
создает выражение (что означает, что это бит синтаксического дерева, который имеет значение при выполнении). Однако это не выражение оператора , означающее, что вы не можете просто добавить ;
в его конец, чтобы создать оператор.
Примерами выражений операторов являются вызовы методов, конструктор вызовы, пре / постинкрементные. Они имеют смысл выступать в качестве заявления, потому что они имеют (или могут иметь) побочные эффекты. Вы можете взять выражение i++
, добавить точку с запятой i++;
, и у вас будет действительное, значимое утверждение.
Необъявительные выражения, такие как сложение 1 + 2
, сами по себе не имеют смысла. Это как сказать «кот и собака»: это не «целое предложение». Условный оператор создает что-то вроде «если дождь, тогда кошка еще собака», что тоже не имеет особого смысла.
Если вы захотите написать условное выражение в качестве выражения, просто используйте if / else заявление вместо.