#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);
Комментариев нет:
Отправить комментарий