Оператор равенства возвращает логическое значение
Четный = число% 2 == 0;
Это допустимое назначение Ja va, которое было приведено на веб-сайте в качестве примера.
Так возвращает ли оператор равенства логическое значение после оценки?
Как и в этом случае, число% 2 == 0, если true, оно присваивает четное = true?
3 ответа
Да. Из спецификации языка Java, раздел 15.21:
Операторы равенства синтаксически левоассоциативны (они группируются слева направо), но этот факт по сути никогда не полезен; например, a == b == c анализируется как (a==b)==c. Тип результата
a==b
всегдаboolean
и, следовательно, c должен иметь тип boolean, иначе произойдет ошибка времени компиляции. Таким образом, a == b == c не проверяет, равны ли все a, b и c.
(Акцент мой - остальная часть абзаца несколько неактуальна, но это контекст, в котором появляется важная фраза.)
Да, сравнения, сделанные с логическими операторами, оценивают как boolean
значение