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