方法返回错误

本文关键字:错误 返回 方法 | 更新日期: 2023-09-27 17:57:54

嗨,我在返回平均值时出错;如果有人能帮我解决这个问题,我非常感谢。

    static void Pos(int[] array)
    {
        Random rand = new Random();
        float sum = 0;
        int counter = 0;
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(-100, 100);
            if(sum >= 0)
            {
                sum += array[i];
                counter++;
            }
            float avg = sum / counter;
            return avg; <<< error?
        }
    }

方法返回错误

您不能返回anthing,因为您的返回类型是void

将此static void Pos(int[] array)更改为static float Pos(int[] array)

此外,您可能会得到"并非所有代码路径返回";

这样做:

static float Pos(int[] array)
    {
        Random rand = new Random();
        float sum = 0;
        int counter = 0;
        float avg;
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(-100, 100);
            if(sum >= 0)
            {
                sum += array[i];
                counter++;
            }
            avg = sum / counter;
        }
        return avg;
    }

您使用的是一个不允许返回任何内容的void。

您的方法的返回类型是void,您将从中返回一个值。

这样做:

static float Pos(int[] array)
{
    Random rand = new Random();
    float sum = 0;
    int counter = 0;
    float avg = 0;
    for (int i = 0; i < array.Length; i++)
    {
        array[i] = rand.Next(-100, 100);
        if(sum >= 0)
        {
            sum += array[i];
            counter++;
        }
        avg = sum / counter;
    }
    return avg;
}

当您将返回类型设置为void时,意味着您不希望该方法返回任何内容。