函数在控制台中运行两次

时间:2016-01-26 15:31:29

标签: c++ function

基本上,每当我在控制台中运行此程序进行测试时,我的Menu()函数都会被调用,当我输入时,它会再次打印整个Menu()函数。请帮我解决这个问题。 附:这是不完整的。

#include <iostream>
#include <windows.h>

using namespace std;

int Menu();

int main()
{

    float currMoney = 0;
    float giveMoney = 0;

    float coke = 8.50;
    float fantaG = 9;
    float fantaO = 9;
    float creamS = 7;


    Menu();

    int Choice = Menu();
    system("cls");
    if(Choice == 1)
    {
        cout<< "Insert R"<< coke << endl;

        int pay = 0;
        cin>> pay;

        float returnA = pay - coke;

        if(returnA < 0)
        {
            returnA = -returnA;
            cout<< "you still owe R"<< returnA << "0" << endl;
        }
    }


}


int Menu()
{
    cout<< "[Drink machine v1.0]\n\n"<< endl;

    cout<< "[1]Coke -- R8,50"<< endl;
    cout<< "[2]Fanta grape -- R9,00" <<endl;
    cout<< "[3]Fanta orange -- R9,00"<< endl;
    cout<< "[4]Cream Soda -- R7,00"<< endl;

    int Choice = 0;
    cin>> Choice;

    return Choice;
}

2 个答案:

答案 0 :(得分:6)

它被调用两次的原因是因为你正在调用它两次!

Menu();               // first time

int Choice = Menu();  // second time

在第一个调用中,您不会捕获返回值 - 所以它只显示菜单,请求输入,然后丢弃结果。

在第二个调用中,您再次显示菜单,请求输入,然后这次捕获结果,并对该结果执行操作。

从中看,您要删除对Menu()

的第一次调用

答案 1 :(得分:2)

在代码

中两次调用它
int main() {
    Menu();
    int Choice = Menu();
}