变量在while语句中保存数据

时间:2020-03-05 18:45:29  来源:igfitidea点击:

我知道我一定会丢失一些东西,但是在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++;
};

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

解决方案

回答

我不确定我是否理解问题。在C语言中,所有未被覆盖的数据都会被带入循环的下一个迭代中,并且可以想象C ++的工作方式大致相同。

回答

我不清楚我们要问的是什么,但是变量将在循环的每次迭代中保持其值,只要它们在循环本身之外声明即可。例如:

int a = 0;

while(a < 10)
{
    int b = 0;

    cout << "a: " << a << " b: " << b << "\n";

    a++;
    b++;
}

在上面的代码中,b的值输出将始终为0,因为它在循环内声明并且每次都将重新初始化,而a将保持其值并在每次迭代中递增。如果b是对象而不是int,则每次迭代都会调用其构造函数和析构函数。

回答

num1是我们遇到问题的变量吗?这行:

cin >> num1;

将num1设置为用户输入的值。因此,每次通过新输入都会覆盖在之前遍历循环中为其计算的值。

回答

我们是否理解当我们说" num1"时,每次都引用相同的变量,并且每次更改num1时都将替换先前的值吗?