Я начинаю на C++, и я делаю этот пример кода операторов присваивания. Я не знаю, что я здесь делаю неправильно.Операторы присваивания C++ Beginner
#include <iostream>
using namespace std;
int main()
{
int x = 200; int y = 100;
x += y; cout << x << endl; //x += y; // x = x + y, x = 200 + 100, output 300.
x -= y; cout << x << endl; //x -= y; // x = x - y, x = 200 - 100, output 100.
x /= y; cout << x << endl; //x /= y; // x = x/y, x = 200/100, output 2.
x %= y; cout << x << endl; //x % y; // x = % y, x = 200 % 100, output 0.
return 0;
}
я получаю результаты для
x -= y = 200
x /= y = 2
x %= y = 2
когда его предполагают, чтобы быть
x -= y = 100
x /= y = 2
x %= y = 0
его на самом деле сложением предыдущих результатов. Как остановить код от добавления результата к следующей строке? Благодаря!
Вы предполагаете 'x' сбрасывает обратно в 200 после каждой команды, но это не делает. –
Остановитесь, чтобы он накопил результаты. '- =', '+ =', '/ =' и '% =' - все операторы накопления, которые присваивают результат операции перед '=' переменной слева. – jaggedSpire
ваше первое присваивание - 'x + = y', так что следующий' x - = y' приводит к 'x == 200'. Нет «сложения» результатов, вы просто продолжаете присваивать 'x', если это не то, что вам нужно, тогда просто не делайте этого ... – user463035818