Я бы подумал, что оно оценивается как ложное, может кто-нибудь объяснить, что происходит, что делает его истинным?
&&
оценивает свой левый операнд и, если это значение ложно, результаты в false
;в противном случае он оценивает свой правый операнд и принимает этот результат в качестве результата.Начиная с
!(false) && (5 > 4)
!(false)
равно true
, так что:
true && (5 > 4)
Поскольку true
не ложно, &&
вычисляет правый операнд:
(5 > 4)
(5 > 4)
также true
, поэтому результат &&
равен true
.