【发布时间】:2016-08-31 15:40:41
【问题描述】:
我是 C++ 的初学者,我正在做这个赋值运算符的示例代码。我不知道我在这里做错了什么。
#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,但事实并非如此。 -
停止要求它累积结果。
-=、+=、/=和%=都是累加运算符,将=之前的运算结果赋给左边的变量。 -
您的第一个分配是
x += y,因此下一个x -= y的结果是x == 200。没有“累加”结果,您只需继续分配给x,如果这不是您想要的,那么就不要这样做...... -
只需将 xstart 定义为 200 并在每次操作之前将 x 重置为 xstart
标签: c++ operators variable-assignment