Full transcript
0:00Приветствую вас, друзья. Меня зовут
0:01Сергей, и мы с вами продолжаем изучать
0:03язык программирования C++. Прошлой нашей
0:06темой были операторы, и, собственно, мы
0:09с вами более детально уделили внимание
0:12арифметическим операциям. У нас даже
0:14было домашнее задание по этой теме. И,
0:17собственно, наша сегодняшняя тема будет
0:20тесно завязана на прошлую тему. Так что
0:23если прошлых видео вы не видели, то
0:25обязательно сходите, посмотрите.
0:27Так вам будет намного легче и понятней.
0:30Что же касается нашей сегодняшней темы,
0:33а сегодняшняя наша тема - это инкремент
0:35и декремент. Вообще это тоже операторы,
0:38тоже математические в некотором роде, и,
0:42собственно, они унарные. Но в применении
0:44этих операторов есть кое-какие
0:46особенности. И для того, чтобы вы их
0:49лучше понимали, а именно их я выделил в
0:54отдельное видео, в отдельный урок.
0:56Собственно, что же такое инкремент и
0:58декремент? Допустим, у нас есть
1:00некоторая переменная A,
1:03которая равна единице. Нам её нужно
1:08увеличить, допустим, тоже на единицу.
1:11Как мы это
1:12сделаем? Мы это сделаем вот такой вот
1:16записью. Давайте выведем это всё в
1:19консоль,
1:21посмотрим. Итак, изначально у нас была
1:23единичка, а мы прибавили ещё единичку.
1:25получилась двойка. Инкремент работает
1:28приблизительно так же, только запись
1:31делается вот
1:32так.
1:34После переменной A мы ставим два плюса.
1:37Это значит, что значение вот этой вот
1:40переменной A увеличивается на единицу. А
1:43давайте сделаем вот так вот. Итак,
1:47первый раз у нас
1:49выведется значение нашей переменной A,
1:52которое мы установили ей сразу.
1:54инициализировав её единицей. Дальше вот
1:58таким вот способом мы прибавим единицу и
2:01потом прибавим единицу с помощью
2:02инкремента. Давайте посмотрим, что у нас
2:05получается. 1 2 3, собственно, то, что
2:08мы и хотели. Вот здесь давайте,
2:09допустим, поставим пятёрочку. Теперь
2:12получается результатом вот этого
2:13вычисления у нас будет шесть, а здесь у
2:15нас будет
2:16семь. 1 6 7. Как вы видите, с первого
2:20взгляда всё довольно просто. Кстати
2:22говоря, если мы пишем два плюса - это
2:24инкремент, то есть увеличение на
2:26единицу, а если два минуса - то
2:28декремент, то есть уменьшение на
2:30единицу. Вот здесь у нас была по
2:32умолчанию единица наша, которой мы
2:34инициализировали переменную. Дальше
2:36прибавили пятёрку, получилась шестёрка и
2:38выполнили декремент. А получилась вот
2:41такая вот у нас
2:42пятёрочка. А, но в чём же вы спросите
2:46сложность с этой операцией? А сложность
2:49вся в том, что инкремент и декремент
2:51имеют две формы: префиксная и
2:53постфиксное. И у них разный приоритет
2:56выполнения операции. А сейчас я вам
2:59покажу более детально, что я имею в
3:01виду. Давайте вот эту запись мы вообще
3:02уберём, она нам не нужна. Допустим, у
3:05нас изначально будет наше значение
3:07инициализироваться единицей, и дальше мы
3:09выполняем инкремент. Сейчас у нас будет
3:11двойка.
3:13В данном случае у нас
3:16постфиксное, постфиксный способ записи
3:18инкремента, потому что у нас запись
3:21оператора выполнена после переменной,
3:24над которой мы, собственно, будем
3:25выполнять операцию. Но также ещё имеется
3:28и префиксный способ записи инкремента и
3:31декремента. То есть сам оператор мы
3:34записываем перед переменной. Если мы
3:37сейчас выведём на
3:38экран то, что мы записали, то ничего не
3:42поменялось. Вроде бы работает это всё
3:44так же само, но на самом деле нет. И
3:46сейчас мы с вами проверим, какая же
3:49разница между префиксным и постфиксным
3:51способом
3:52выполнения инкремента. Для этого мы, а,
3:56сделаем инкремент вот таким вот
3:58способом. Прямо в вот этом вот сиауте
4:00сделаем операцию мм инкремента и выведем
4:04ещё раз нашу переменную A.
4:06А нет, пока не будем выводить. Наверное,
4:09вот так вот будет понятнее. Итак,
4:12смотрите, у нас есть переменная A,
4:15которую мы выводим на экран. Она у нас
4:17сейчас со значением единица. Далее у нас
4:21опять есть вывод на экран переменной A,
4:24но здесь выполняется операция
4:26инкремента. А как вы думаете, что мы
4:27сейчас получим на экране? А получим мы
4:32единицу, потому что приоритет вот этого
4:35вот инкремента ниже, чем у всех
4:38остальных операций. То есть сначала мы
4:40выводим переменную на экран, а потом уже
4:43выполняем операцию инкремента. То же
4:46самое с декрементом. Если мы сделаем
4:48минус, то ничего не поменяется. Но а
4:52если мы запишем это в префиксной форме,
4:56то приоритет операции у нас поменяется.
4:58Сначала наша переменная A увеличится на
5:01единицу, а потом уже она выведется на
5:03экран. Как видите, у нас теперь имеется
5:06единица, потом двойка. То же самое и с
5:08декрементом. Декремент и инкремент оба
5:11имеют постфиксную, префиксную форму
5:13записи. Сейчас на экране мы видим ноль.
5:18Обратите внимание и хорошо запомните то,
5:20что сейчас мне рассказал, потому что в
5:22дальнейшем инкрементом и декрементом вы
5:24будете пользоваться постоянно, а, во
5:26всяком случае, постфиксной формой. Так,
5:29точно. А теперь ещё один небольшой
5:31примерчик. Вот это всё мы, наверное,
5:33удалим и добавим сюда ещё одну интовую
5:36переменную B. И ей прислаим вот такую
5:39вот
5:42запись. А, даже вот так вот, наверное. А
5:47инкремент префиксный умножить на А. Как
5:51вы думаете, что мы сейчас
5:54получим? Давайте выведем на экран и
5:56посмотрим. А, да, вывести-то забыл,
6:00конечно.
6:04Cout и
6:07endй. Итак, мы получили четыре. Давайте
6:09же разберёмся, почему так.
6:14Для этого мы даже воспользуемся
6:15отлатчиком. Как пользоваться отлатчиком,
6:18я, наверное, расскажу вам в отдельном
6:19видео. Итак, у нас изначально есть
6:22переменная A, которая сейчас у
6:26нас равна единице.
6:30Далее, как только мы доходим до
6:31одиннадцатой
6:33строчки, а компилятор видит вот такое
6:36вот
6:38выражение: "Операция инкремента,
6:41префиксная у нас имеет наивысший
6:43приоритет, поэтому над переменной A
6:47выполняется м увеличение этой переменной
6:51на единицу.
6:53Поэтому, как только у
6:55нас выполнится операция инкремента, у
6:58нас a будет равно уже 2. Но так как мы a
7:01умножаем на a, то получается у нас здесь
7:05будет умножение 2 на
7:082. Итого результат у нас получается
7:11получается 4. Собственно, вот таким вот
7:13образом это и работает. Хорошо. А если
7:17мы добавим к вот этой вот a постфиксной
7:20инкремент, как вы думаете, поменяется ли
7:22результат нашего вычисления или
7:25нет? Давайте проверим. Ну, скажу я вам
7:28так, что нет, потому что результат
7:32постфиксного инкремента выполнится, вот
7:34этого вот инкремента выполнится уже
7:36после того, как значению B
7:40присвоится вычисление вот этого
7:41выражения.
7:43Давайте для того, чтобы вам было более
7:46понятно, мы будем выводить ещё и
7:48переменную
7:50A. Сделаем это вот так. Итак, сейчас у
7:55нас выбедится переменная B и переменная
7:59A.
8:01Смотрите, переменная B = 4, а переменная
8:04A = 3. Как же так? Ведь если бы у нас A
8:09равно 3, у нас бы результат умножения
8:11был бы девять. А всё потому, что
8:15постфиксная запись инкремента, вот эта
8:17вот часть, выполняется уже после того,
8:20как вот эта вот часть выражения
8:22присвоилась в переменную B. А давайте
8:27уберём вот этот постфисный постфиксный
8:30инкремент и посмотрим, что сейчас у нас
8:32будет в переменной A, а будет там
8:33двойка.
8:38Возможно, для вас это немного сложно.
8:40Если у вас возникают какие-то вопросы,
8:42пишите их внизу под этим видео. В
8:43следующем видео попытаюсь на них
8:45ответить. Ну и на этом у меня сейчас,
8:48собственно, всё. Это пока всё, что хотел
8:50вам рассказать об инкременте и
8:53декременте. И если вам понравилось это
8:55видео, оно было вам полезно и интересно,
8:57то не забудьте поставить под ним лайк и
8:59подписывайтесь на канал, если не
9:00подписаны, чтобы не пропустить новое
9:02видео. Всем спасибо за внимание. Пока.