Здравствуйте.
Есть разницa между:
i++ и ++i
i--- и --i ?
Вид для печати
Здравствуйте.
Есть разницa между:
i++ и ++i
i--- и --i ?
Префиксный инкремент/декремент - вначале происходит увеличение/уменьшение значения переменной, после извлечение значения, и использование его в выражении.
Постфиксный инкремент/декремент - вначале извлечение значения, и использование его в выражении, после происходит увеличение/уменьшение значения переменной.
"i++" называется "постинкремент"
"++i" называется "преинкремент"
Отличия разберём на примере:
В первом случае мы увидим в консоли "5", так как постинкремент подразумевает то, что сначала мы получаем текущее значение переменной "i", а после изменяем его на единицу (если вставить ещё один printf и вывести значение i, мы увидим "6")PHP код:
new i;
i = 5;
printf("%d", i++);
i = 5;
printf("%d", ++i);
Во втором же случае мы увидим "6", так как преинкремент подразумевает то, что сначала значение переменной "i" изменяется на единицу, а уже после мы получаем получившееся значение.
Если речь идёт про циклы
То тут существенной разницы нет, так как у цикла прописана своя логика работы. Сначала инициализируется переменная, потом проверяется условие, потом выполняется код в теле цикла и только потом происходит выполнение поститерационной команды - тех самых "i++" и "++i". Собственно, так как изменение значения переменной происходит отдельно от условия и всех остальных операций с применением этой переменной, не важно каким образом её изменять, ибо результатом каждой итерации цикла будет как раз выполнение поститерационной команды.PHP код:
for(new i; i < MAX_PLAYERS; i++)
for(new i; i < MAX_PLAYERS; ++i)
Спасибо за ответы!