如何在while循环中保存int值?

时间:2016-10-26 21:40:18

标签: c++

我的问题是,如何在while循环中保存int值,我的代码是关于赌博,你从1000开始,你想赚取最多的现金,但当我再次滚动我的现金恢复回到我设定的原始值。

我的代码是这样的(注意我是新手,所以不要嘲笑它有多糟糕)

#include <cmath>
#include <stdio.h>
#include <iostream>
#include <ctime>
#include <cstdlib> 
using namespace std;


int main()
{
    char again = 'Y';
    int test;
    int yes;
    int CashW;
    CashW = 1000;
    int CashL;
    CashL = 1000;
    int yLose;
    yLose = 500;
    int xCash;
    xCash = 1000;
    int xRan;
    srand(time(0));
    xRan = rand() % 100 + 1;
    cout << " Welcome to the Gambling Game!" << endl;
        cout << " If the number is above 50 I win!" << endl;
        cout << " If the number is below 50 you lose!" << endl;
        while (again == 'y' || again == 'Y')
        {
        cout << " The Number I Choose Is: " << xRan << endl;


        CashL = xCash - xCash - xCash;
        CashW = xCash + xCash;


        if (xRan < 50) {
            cout << " You win, rats!" << endl;
            cout << " The cash you started with was: " << xCash << endl;
            cout << " The cash you have now is: " << CashW << endl;
            cout << " Type 1 to play again, type 2 to close the game." << endl;
            cin >> yes;

        }

        if (xRan > 50) {
            cout << " I win, you lose!" << endl;
            cout << " The cash you started with was: " << xCash << endl;
            cout << " The cash you have now is: " << CashL << endl;
            cout << " Type 1 to play again, type 2 to close the game." << endl;
            cin >> yes;

        }

        if (yes == 1) {
            cout << " Cool, a gambling man! Time to make some cash" << endl;
        }

    }


}

2 个答案:

答案 0 :(得分:1)

在您的代码中,您目前会显示CashWCashL,具体取决于gampbling结果。

不幸的是,您只打印出结果,并且永远不会将其存储到xCash中。因此,在下一次迭代中,您将以相同的xCash值重新开始!

您可以通过在显示结果的行下方添加xCash = CashW;xCash = CashL;来轻松解决此问题。

答案 1 :(得分:1)

您永远不会使用每次赢/输的金额更新xCash。您没有在每次循环迭代中生成新的随机数。而且你会陷入无限循环,因为你永远不会更新循环变量again

尝试更像这样的东西:

#include <cmath>
#include <stdio.h>
#include <iostream>
#include <ctime>
#include <cstdlib> 

using namespace std;

int main()
{
    const int CashW = 1000;
    const int CashL = 1000;

    int xCash = 1000;
    int xRan;
    char answer;

    srand(time(0));

    cout << " Welcome to the Gambling Game!" << endl;
    cout << " If the number is above 50 I win!" << endl;
    cout << " If the number is below 50 you win!" << endl;

    do
    {
        xRan = rand() % 100 + 1;
        cout << " The Number I Choose Is: " << xRan << endl;

        if (xRan < 50) {
            cout << " You win, rats!" << endl;
            cout << " The cash you started with was: " << xCash << endl;
            xCash += CashW;
            cout << " The cash you have now is: " << xCash << endl;
        }

        else if (xRan > 50) {
            cout << " I win, you lose!" << endl;
            cout << " The cash you started with was: " << xCash << endl;
            xCash -= CashL;
            cout << " The cash you have now is: " << xCash << endl;
        }

        else {
            cout << " dang, a draw!" << endl;
        }

        cout << " play again? " << endl;
        cin >> answer;

        if ((answer != 'y') && (answer != 'Y')) {
            cout << " All done? Come back again another time!" << endl;
            break;
        }

        cout << " Cool, a gambling man! Time to make some cash" << endl;
    }
    while (true);

    return 0;
}