如何在开关内部保持运行中的输入变量的总数?

时间:2019-05-05 22:47:10

标签: c++ switch-statement

我对C ++很陌生。我正在开发一个程序,用户可以在其中提款或将钱存入虚拟ATM。我的交换机中有四种情况,我正在尝试跟踪用户存入的每笔金额。我的目标是不允许用户在整个切换过程中存入超过1000美元的费用-无论是一次存入1000美元,还是两次存入500美元,等等。

我只有运气会使用嵌套的if语句,如您将在下面看到的那样,说出“ if(deposit> 1000)”,但这只能解决它们输入的值大于1000的情况,而不是多次存款,然后输入400,然后输入600。

 case 3:

 cout << "Deposit - How much would you like to deposit? $";

        cin >> deposit;



        if (deposit >= 0 && deposit <=50) {

        cout << "Your new balance after depositing $" << deposit <<    " will be $"
             << (balance += deposit) << '\n' <<endl;
        }
        else if (deposit < 0 )

        {
            cout << "Please enter a postive value." << endl;
        }

       else if (balance + deposit > 3495.99)

        {
           cout<< "You have exceeded the maximum balance your  account can hold. Please enter a smaller deposit amount.";
       }

        else if (deposit > 50)
        cout << "Please note: There is a $2.50 fee for deposits  over $50. Your new balance after depositing $" << deposit << " will be  $"
             << (balance += (deposit - over50fee )) <<'\n'  <<endl;


cout << "Would you like to take any other actions today? Y/N ";

如果用户输入的总存款金额(无论有多少笔存款)都超过$ 1000,我想打印一条消息“已达到最大每日存款限额。请最多存入$ 1000。”

希望您能提供任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以引入一个附加变量,例如depositTracker。将其初始化为0。 然后尝试:

cin >> deposit;
depositTracker += deposit;
if (depositTracker > 1000) {
  cout << " You have reached your maximum deposit limit";
}

这样,每次您存款时,都会将金额添加到depositTracker中。如果存款总额超过1000,它将告知用户。 希望这会有所帮助。