(C ++) Бесконечные нули с оператором сложения в малом цикле - PullRequest
0 голосов
/ 09 апреля 2020

У меня небольшая проблема с этим небольшим фрагментом кода; Если я использую операцию ++ (x ++), она работает нормально, но если я пишу «x + 1», она ломается и приводит к бесконечному l oop нулей.

Код:

int x = 0;

while (x <= 20)
{
    std::cout << x << std::endl;
    x + 1;
}

Любая помощь будет оценена!

Ответы [ 2 ]

2 голосов
/ 09 апреля 2020

Если вы хотите установить значение переменной, вы должны * использовать =. Это: x + 1 НЕ совпадает с x = x + 1 или x += 1 или x++.

. Когда вы добавляете к своему коду x plus, вы никогда не меняете значение x.
x + 1 просто возвращает временное значение результата. Где, поскольку остальные три, перечисленные выше, изменят значение x вместо создания временного значения.

0 голосов
/ 09 апреля 2020

Вам необходимо знать различия между различными утверждениями, касающимися приращения, как показано ниже.

  • x ++ означает x = x + 1; что означает копирование значения x во временный регистр, увеличение значения на 1 и запись этого значения регистра обратно в x.
  • x + 1 означает, копирование значения x во временный регистр, увеличение значения на 1 Вы не присваиваете значение обратно x. Таким образом, значение x не будет изменено.

Так что в ваше время l oop значение x не изменяется, что является причиной бесконечного l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...