powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Инкремент. Префиксная и постфиксная форма.
11 сообщений из 11, страница 1 из 1
Инкремент. Префиксная и постфиксная форма.
    #38640291
Стручонак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет камрады.

Вопрос нубский. Ответа пока нигде не нашел.

Скажите пожалуйста почему такой код возвращает 4
Код: java
1.
2.
3.
        int i = 0;                
        i=1 + i++ + i++ + i++;
        System.out.println(i);



а такой 2....

Код: java
1.
2.
3.
        int i = 0;
        i=1 + i++ + i++;
        System.out.println(i);   



можно было бы предположить, что в первом варианте он сперва положил 0 в стек. затем для каждого инкремента сделал его увеличение на 1 в итоге 1+1+1+1 = 4.

но что пошло не так во втором то примере?

PS i=1 + i++ + i++ + i++ + i++; (= 7. ваще ни в какие рамки. где логика и есть ли она?)))
PSS разницу i=i++ vs i=++i понимаю, для простых примеров. Но не могу понять как это работает в выражениях (кроме матерных).
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640297
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот во что превращается ваш код при выполнении:
Код: java
1.
2.
i= 1 + i++ + i++ + i++ = 1 + 2 + 1 + 0 = 4;
i = 1 + i++ + i++ = 1 + 1 + 0 = 2;
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640305
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стручонак
Код: java
1.
i=1 + i++ + i++ + i++;


1 + 0 + 1 + 2

Стручонак
Код: java
1.
i=1 + i++ + i++;


1 + 0 + 2
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640307
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanСтручонак
Код: java
1.
i=1 + i++ + i++ + i++;



1 + 0 + 1 + 2

Стручонак
Код: java
1.
i=1 + i++ + i++;



1 + 0 + 1
Поправил. :)
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640308
Стручонак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DEVcoach,

а почему?

вот например откуда там 0?
выглядит так словно он начал справа налево инкрементировать. причем крайнее правое выражение тупо проигнорил.
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640309
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стручонаквот например откуда там 0?
Стручонак
Код: java
1.
int i = 0;   
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640311
Стручонак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стручонак,

кажется понял.

1+i++ это выражение, в котором он сперва сделал 1+0(это начальное i), а затем в никуда провел операцию инкремента по отношению в результату выражения, а не к переменной i.
Затем уже все гладко пошло.
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640313
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стручонак1+i++ это выражение, в котором он сперва сделал 1+0(это начальное i), а затем в никуда провел операцию инкремента по отношению в результату выражения, а не к переменной i.
Затем уже все гладко пошло.
Не "в никуда", а к i . 1 + i =0, к которой прибавил 1 для последующей операции.
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640320
Стручонак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanк которой прибавил 1 для последующей операции.

если так то почему тогда для такого фрагмента
i=1 + i++ + i++ + i++;

1+0+1+2

а не 1+0+2+3

ведь у нас в момент для 2-го выражения инкремента i уже увеличена на 1.
или здесь опять повлияла постфиксная форма, в которой он сперва сделал операцию сложения с имеющимся значение в i?
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640327
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стручонакили здесь опять повлияла постфиксная форма, в которой он сперва сделал операцию сложения с имеющимся значение в i?
Сначала операция перед переменной, затем - после. В данном случае.

Код: java
1.
2.
3.
4.
int i=0;
i=1+i++;

i == 1 ? "да" : "нет"



i = 0 + 0 + (0+1);
...
Рейтинг: 0 / 0
Инкремент. Префиксная и постфиксная форма.
    #38640328
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmani = 1 + 0 + (0+1);
Опять...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Инкремент. Префиксная и постфиксная форма.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]