函数在控制台中运行两次

Function running twice in console

本文关键字:两次 运行 控制台 函数      更新时间:2023-10-16

基本上,每当我在控制台中运行这个程序来测试它时,我的 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]nn"<< 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;
}

它被调用两次的原因是因为您要调用它两次!

Menu();               // first time
int Choice = Menu();  // second time

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

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

从外观上看,您要删除对Menu()的第一个调用

你在代码中调用它两次

int main() {
    Menu();
    int Choice = Menu();
}