我正在使用数组和方法。我正在编写一个代码,用于计算用户在数组中输入的数字的平均值。我提出了第一种方法,但VS告诉我“并非所有代码路径都返回一个值”。当我在Main()方法中测试代码时,它运行良好但是当它在我的GetValues()方法中时,我得到了错误。
我阅读了所有其他帖子,但由于它们的特殊性,它们对我来说不太合理。我知道这不是太难,但我是初学者,并试图自己理解这一点。
我的程序尚未完成,以下代码只是我程序的第一部分(方法)。一旦GetValues()工作,那么我们的想法是从另一个计算平均值的方法调用此方法。同样,GetValues()应该捕获数组。
以下是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testscores
{
class Program
{
static void Main(string[] args)
{
}
private static int[] GetValues()
{
string inValue;
int[] score = new int[5];
int total = 0;
for (int i = 0; i < score.Length; i++)
{
Console.Write("Enter Score {0}: ", i + 1);
inValue = Console.ReadLine();
score[i] = Convert.ToInt32(inValue);
}
for (int i = 0; i < score.Length; i++)
{
total += score[i];
}
}
}
}
答案 0 :(得分:3)
您是否尝试返回整数数组score
?
....
for (int i = 0; i < score.Length; i++)
{
total += score[i];
}
return score;
}
所以你可以在调用它时捕获这个数组
int[] scores = GetValues();
答案 1 :(得分:2)
您的函数被声明为返回int[]
,但其中没有单个return
语句。
答案 2 :(得分:2)
在函数GetValues()的末尾,你需要返回一个int []。这是编译器错误告诉你的;如果您遵循GetValues()中的所有代码路径,则至少有一个不返回值。 (将return score
添加到函数末尾。)
答案 3 :(得分:1)
您的方法没有返回任何内容,并且未声明为void,而是int []
答案 4 :(得分:0)
编译错误是因为您需要添加return score
除此之外,你还在做一个循环来填充局部变量'total',然后对那些看起来像设计/逻辑错误的东西不做任何事情。基本上,只有删除代码或者输出param而不是局部变量,才能删除代码。您也可以在第一个循环中执行此操作。