如何在c#中循环一个函数?

时间:2015-11-13 23:47:38

标签: c# function procedures

在我的计算机科学课上,我得到了这个问题,我无法弄清楚如何回答这个问题。 问题:

•创建一个名为tossCoins的过程,其中包含一个整数参数 - numTosses

•在你的tossCoins程序中,从挑战#5调用你的tossCoin函数 numTosses次。因此,例如,如果我们输入tossCoins(50),则将调用tossCoin函数50次。

•你的tossCoins程序应打印出硬币落在头上的次数和硬币落在尾巴上的次数

•扩展您的主程序,以便用户可以选择投掷硬币的次数

我已经创建了tossCoin函数,但无法弄清楚如何运行它的用户要求的次数,或者如何创建头部和尾部的计数。 这是我到目前为止的代码:

    static void Main(string[] args)
    {
        Random rnd = new Random();

        Console.WriteLine(tossCoin(rnd));

        Console.Write("Please enter a number: ");
        int numTosses = Convert.ToInt16(Console.ReadLine());

        Console.ReadLine();
    }

    static string tossCoin(Random rnd)
    {
        int num = rnd.Next(1, 3);

        string heads = "Heads";
        string tails = "Tails";

        if(num == 1)
        {
            return heads;
        }
        else
        {
            return tails;
        }
    }

    static void tossCoins(int numTosses)
    {
        int headsTally = 0;
        int tailsTally = 0;

        for(int i = 0; i < numTosses; i++)
        {
            string outcome = tossCoin(rnd);
            numTosses--;
            if(outcome == heads)
            {
                headsTally++;
            }
            else
            {
                tailsTally++;
            }
        }
    }
}

如果有人可以提供帮助,那就太棒了,因为我正在努力学习使用函数和程序的不同规则。谢谢,礼顿。

1 个答案:

答案 0 :(得分:-1)

有几件事情,首先看起来你差不多了。您只需在main方法中调用tossCoins()函数即可。其次,你不需要在for循环中递减numTosses,即。删除第numTosses--;

编辑:正如Tommy所说,outcome == heads语句不会编译,因为heads未定义。要么用"Heads"替换头,要么在函数的前面定义它。你可能想要返回/打印结果。