变量在while语句中保存数据

时间:2008-08-30 16:43:29

标签: c++

我知道我必须遗漏一些东西,但是在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++;
};

在此代码中。变量不保存数据。我不确定我做错了什么!

4 个答案:

答案 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时你都会替换之前的值?