我知道我必须遗漏一些东西,但是在while
语句中,当变量完成第一遍并进入第二遍时,变量如何保存数据?
{
int num1 = 0 ;
int num2 = 0;
int num3 = 0;
while (num1 < 10)
{cout << "enter your first number: ";
cin >> num1;
cout << "Enter your second number: ";
cin >> num2;
num1 = num1 + num2 ;
cout << "Number 1 is now: " << num1 <<endl;
cout << "Enter Number 3: " ;
cin >> num3;
num1 = num1 + num3;
cout << "Number 1 is now: " << num1 << endl;
num1++;
};
在此代码中。变量不保存数据。我不确定我做错了什么!
答案 0 :(得分:2)
我不清楚你究竟在问什么,但变量将为循环的每次迭代保持它们的值,只要它们在循环本身之外被声明。例如:
int a = 0;
while(a < 10)
{
int b = 0;
cout << "a: " << a << " b: " << b << "\n";
a++;
b++;
}
在上面,b的值输出将始终为0,因为它在循环内声明并且每次都重新初始化,而a将保持其值并在每次迭代时递增。如果b是一个对象而不是一个int,那么每次迭代都会调用它的构造函数和析构函数。
答案 1 :(得分:2)
num1是你遇到麻烦的变量吗?这一行:
cin >> num1;
将num1设置为用户输入的值。因此,每次通过新输入都会覆盖先前通过循环计算的值。
答案 2 :(得分:1)
我不确定我理解你的问题。在C中,任何未被覆盖的数据都会被转移到循环的下一个迭代中,并且可以想象C ++的工作方式大致相同。
答案 3 :(得分:1)
你是否理解当你说“num1”时你每次都指的是同一个变量,并且每次更改num1时你都会替换之前的值?