Сокращенное присваивание, инкремент и декремент

Сокращенное присваивание, инкремент и декремент

Чтобы облегчить себе жизнь и количество символов в коде, в C++ можно прибегать к некоторым хитростям.

Помните, в прошлом уроке мы писали i = i + 1. Но зачем нам повторять переменную i еще раз? Ведь мы можем сделать запись короче – i += 1. Не бойтесь это тоже самое, только мы упрощаем нашу запись. На самом деле мы это можем сделать с любой математической операцией, которые уже знаем:

  1. Сложение – (a + 1) == (a += 1);
  2. Вычитание – (a – 1) == (a -= 1);
  3. Умножение – (a * 2) == (a *= 2);
  4. Деление – (a / 2) == (a /= 2);
  5. Деление с остатком – (a % 2) == (a %= 2);

Про побитовые операции мы сейчас говорить не будем, сделаем это позже.

Дело не только в том, чтобы написать меньше кода. А еще чтобы сделать его более наглядным. При беглом просматривании кода мы не всегда сможем понять что написано. Например, i = j + 1 или j = i + 1. А когда мы увидим i += 1. Мы точно не ошибемся.

Инкремент и декремент

Эти операции очень частые. В циклах они используются поголовно. Именно поэтому и пришло время изучить их.

Синтаксис этих двух операций очень простой i++ / ++i и i– / –i.

Что делают эти операции?

  1. i++ и ++i – прибавляют единицу к переменной i;
  2. i– и –i – вычитают единицу из переменной i.

В чем разница между a++ и ++a?

Давайте разберемся.

Разница появляется в случае использования в выражениях.

  1. ++i – сначала увеличивает значение переменной i, затем использует ее значение в выражении;
  2. i++ – сначала использует значение переменной i в выражении, а затем увеличивает его на 1.

Но лучше всего это сделать на примере.

В чем разница?

Посмотрите на изображение, оно наглядно показывает, что мы получаем в том или ином случае.

  1. В первом случае, мы вначале увеличиваем i на единицу, а лишь затем выводим ответ;
  2. Во втором случае, мы вначале выводим значение переменно i, и только затем увеличиваем ее на единицу.

Важно: Необходимо помнить, что операции инкремента и декремента можно использовать только к переменным. Так как значение должно быть изменяемым. К цифрам нельзя! Потому что цифры это не изменяемое значение, и не ячейка памяти. И их нельзя увеличить или уменьшить таким способом.

Приоритет операций

  1. i++ и i–;
  2. ++i и –i;
  3. – (унарный минус (отрицательное число));
  4. * и / и %;
  5. + и -;
  6. << и >>;
  7. < и <=;
  8. > и >=;
  9. == и !=;
  10. &&;
  11. ||;
  12. ? и : (тернарная операция);
  13. =;
  14. += и -=;
  15. *= и /= и %=;

Чем меньше цифра, тем больший приоритет имеет операция.

Решение задач

Звездопад

Выведите в строку n звездочек, где n – количество людей, смотрящих на звездопад.
Формат входных данных
Вводится целое число n (1 < n < 100) Формат выходных данных
Выводится n звездочек в строку без пробелов
Примеры
входные данные
5
выходные данные
*****

Решение задачи Звездопад

Сумма числе последовательности

Дана последовательность целых чисел, оканчивающаяся нулём. Необходимо найти сумму всех чисел этой последовательности. Ноль числом последовательности не является.

Формат входных данных
Вводится не более, чем 215 целых чисел, каждое из которых не превосходит по модулю 215−1. После последнего числа вводится 0. Гарантируется, что в последовательности есть хотя бы одно число.
Формат выходных данных
Требуется вывести одно число — сумму всех чисел этой последовательности.
Примеры
входные данные
1 1 1 1 1 0
выходные данные
5

Решение задачи Сумма чисел последовательности

Видео по теме урока

Поделиться:
Нет комментариев

Leave a Reply

×
Рекомендуем посмотреть