Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
1

Постфиксный и префиксный инкремент

09.11.2014, 16:14. Показов 1857. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! чем отличается ++i от i++, кто то может русским языком объяснить? Просто встал в ступор не могу понять как их работа отличается.


Заранее большое спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2014, 16:14
Ответы с готовыми решениями:

Префиксный и постфиксный инкремент
#include <iostream> using namespace std; int main() { int c=0; ...

Постфиксный и префиксный инкремент
Однажды задумался и захотел стать программистом. Зашибать по 300к в секунду. Начал учить C#, но...

Префиксный/постфиксный инкремент
Почему следующий код выводит на консоль 13 - понятно (т.к. в первую очередь поочередно выполняются...

Как выполняется постфиксный и префиксный инкремент?
Растолкуйте! Обычно, а = с++ толкуется как а = с+1 тогда а = ++с есть а = 1+с Если...

3
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
09.11.2014, 16:21 2
В документацию не заглядывали?
Операторы инкремента и декремента
1
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
09.11.2014, 16:24 3
PHP
1
2
3
$i = 3;
$b = $i++;
// $i == 4, $b == 3;
PHP
1
2
3
$i = 3;
$b = ++$i;
// $i == 4, $b == 4;
если коротко, и по-простому, то преинкремент сначала увеличиает переменную, а потом возвращает значение. а постинкремент -- сначала возвращает значение, а потом увеличивает переменную.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
09.11.2014, 16:51 4
Лучший ответ Сообщение было отмечено Inkvizzz как решение

Решение

Если нужно прсото увеличить число - то используйте любой
напрмиер
PHP
1
for ($i = 0; $i < 10; ++$i) // i будет от 0 до 9
то же самое что
PHP
1
for ($i = 0; $i < 10; $i++) // i будет от 0 до 9
так как вы отдельно проверяете значение $i.

А если вы проверяете сразу в с действием, то разница будет.
PHP
1
for ($i = 0; ++$i < 10; ) // i Будет от 1 до 9
PHP
1
for ($i = 0; $i++ < 10; ) // i Будет от 1 до 10
Это используется для удобства и сокращения записи, что бы не записывать два выражения.

Предположим нужно пронумировать строки при выводе в foreach
PHP
1
2
3
4
5
6
<?php
 
// какие то данные в модели
$users = array("Вася" => "Инженер", "Петя" => "Программист");
 
?>
где то в шаблоне выводим
PHP
1
2
3
<?php foreach ($users as $name => $profession) : $i = 0; ?>
    <li><?php echo ++$i ?>) <?php echo $name ?> - <span><?php echo $profession ?></span></li>
<?php endforeach ?>
Если $i присвоить 0, то при выводе, если написать ++$i - мы сначала увеличим значение переменной, а потом выведем его, то есть первое будет 1

Если $i присвоить 0, и при выводе написать $i++ - то мы сначала выведем значение а потом увеличим.
То есть первая строка будет 0.

То есть что бы нумерация была с 1, нужно либо присвоить 0 и использовать ++$i, либо присвоить $i = 1 и использовать $i++;

Бывает более нужное использование конструкций, но чаще это в других языках и не для сайтов

Вообщем можно представить это так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
//$i++
function post_inc(&$i) {
    $_i = $i; // запоминаем что было
    $i = $i + 1;  // увеличиваем значение
    return $_i; // отдаём то что было до увеличения
}
 
//++$i
function pre_inc(&$i) {
    $i = $i + 1; // увеличиваем значение
    return $i; // отдаём уже увеличенное значение
}
декремент - то же самое только с вычитанием
1
09.11.2014, 16:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2014, 16:51
Помогаю со студенческими работами здесь

Инкремент постфиксный и префиксный - принцип работы
Hello World! Нужна ваша помощь, мозг отказывается понимать :wall:! Набрал код: #include...

Указатели: почему так происходит? Постфиксный и префиксный инкремент
В общем, вот код программы double q; for (int i(0);i&lt;10;i++) { q=i; } cout&lt;&lt;q&lt;&lt;endl;...

Префиксный и постфиксный инкременты
Приветствую всех. Экспериментом установил, что префиксный инкремент переменной стандартного типа...

Постфиксный и префиксный декремент
#include &lt;iostream&gt; using std::cout; int main() { int a=5; cout &lt;&lt; (--a)-- &lt;&lt; &quot; &quot;; cout...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru