如何将引用变量增加1

时间:2011-10-31 21:35:50

标签: c++ loops

我是c +的新手,我正在尝试从50开始增加汽车,但如果youdamage比greamage更好,那么只增加1。我希望汽车在下一次循环时保持其价值。我希望这是有道理的。

int Power (int &car);

int main(){
    int car = 50;
    // ...
    // ...
    // ...

    int carDamage = 0;
    int yourDamage = 0;
    // pick a random number between 1 to 50
    yourDamage = 0 + rand() % (50 - 0 + 1);
    carDamage = 0 + rand() % (50 - 0 + 1);
    cout << "You hit the car and cause damage of: " << carDamage << endl;
    cout << "The car hits you and causes damage of: " << yourDamage << endl;
    cout << endl;

    if(carDamage < yourDamage)
    {
        cout << "You win" << endl;
        cout << "You gain strength." << endl;
        cout << endl;
        int car = car + 1;
    }
    else
    {

6 个答案:

答案 0 :(得分:9)

你宣布一个新变量遮蔽原始变量。

变化

int car = car + 1;

car = car + 1;

答案 1 :(得分:8)

您需要重新分配相同的变量。您正在声明一个新变量。

改变这个:

int car = car + 1;

对此:

++car;

答案 2 :(得分:1)

通过这样做:

int car = car + 1;

您正在将汽车重新定义为整数。

请参阅:

#include <stdio.h>
int car;
int main() {
    car = 0;
    for (int i = 0; i < 10; i++) {
        int car = 0;
        car++;
    }
    printf("%3d", car);
}

VS

#include <stdio.h>
int car;
int main() {
    car = 0;
    for (int i = 0; i < 10; i++) {
        car++;
    }
    printf("%3d", car);
}

答案 3 :(得分:0)

您在if语句中声明了一个新变量car,它隐藏了上述范围中的原始car变量。删除类型将允许您引用现有变量,而不是声明新变量。

简而言之,改变

int car = car + 1;

car = car + 1;

答案 4 :(得分:0)

当你说

时,你的问题就出现了
int car = car + 1;

您基本上创建了一个名为car的本地变量(if语句的本地变量),该变量的值为51(因为原始的本地范围变量(本地到main)包含50并且您添加1)。一旦你离开if语句,就会销毁这个局部变量(if语句中的on)。

如果将其更改为

car = car + 1;

您现在将变量local修改为main,因此将保留更新。

答案 5 :(得分:0)

我没有看到一个循环,但我会冒险猜测你的问题是你在做这一行:

int car = car + 1;

在你的:

if(carDamage < yourDamage)

语句表示您每次都要重新声明,重置其值。

int car;大写为语句,并在最初编写++car;

的循环中执行int car = car + 1;