Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Почему нельзя 2 + + ++3?

#java #инкремент


В этом ответе разобрались, что 2 + + 3 читается компилятором как 2 + (+3), то есть
второй плюс — унарный.

В таком случае, почему не работает такое?

2 + + ++3


Как бы я это понимал, будучи компилятором:

2 + ( +( ++3 ) )



( ++3 ) — выполнить инкремент и вернуть значение 4
( +4 ) — унарный плюс к 4, вернуть 4.
2 + 4, сложение, вернуть 6.


Где ошибка в моем внутреннем компиляторе Java?

Кстати, 2 + + 3++ тоже не работает.
    


Ответы

Ответ 1



Сам понял! Потому что инкременты нельзя применять к константам. Такое работает: int a = 2; int b = 3; System.out.println(+ a++ + + ++b);

Комментариев нет:

Отправить комментарий