Поскольку вы не можете назначить такой оператор на Java. Ваш тройная будет работать, если вы использовали это нравится,
System.out.println(i%2==0 ? "even" : "odd");
Фундаментально, Java не C.
Редактировать
Вы спросите в комментариях, , где я я назначая ничего?
Цитирую Equality, Relational, and Conditional Operators (The Java Tutorials),
Другой условный оператор ?:
, который можно рассматривать как сокращение для если-то-иначе заявления (обсуждается в разделе отчётность Flow Control этого урока). Этот оператор также известен как тройной оператор , поскольку он использует три операнда. В следующем примере оператор должен читаться как: «Если someCondition
является true
, присвоить значение value1
для result
В противном случае присвоить значение value2
к result
..»
Далее, Chapter 15. Expressions - Conditional Operator ? :
(JLS-15.25) говорит
Это ошибка времени компиляции для второго или третьего выражения операнда быть вызовом метода void
.
это потому, что 'System.out.println()' return 'void', где в качестве выражения ожидает некоторое значение. – Rustam