0

Id 需要迭代方法中的 i 作为 Iteration() 的返回值....目前它错误地说它没有返回值。我假设它在 for 语句中。

using System;

class Program
{
int i = 1;

static string globalValue = "I was declared outside any method";

static void Main()
{
    for (int b = 0; b < 101; b++)
    {
        Console.Write(Iteration());
    }
}
static string FizzBuzz()
{
    string f = "word1";

    return f;
}
static string Buzz()
{
    string b = "word2";

    return b;
}
static int Iteration()
{
    for (int i = 0; i < 101; i++)
    {
        return i;
    }



}

}

4

2 回答 2

4

C# 编译器只有有限的导航代码的能力,以确定您的函数是否总是返回一个值。虽然您编写的代码总是返回,但编译器并没有“足够聪明”来解决这个问题。

只需return -1;在循环后的函数末尾加上 a 即可满足编译器的要求。

当然,您现在拥有的代码没有多大意义,因为Iteration()总是会返回0。它不会遍历整个循环,因为函数只能返回一个值。(迭代器块是语法异常,但不是实际异常)。

于 2012-06-25T03:44:04.590 回答
0

如果不编译,如果你说迭代函数抱怨所有代码路径不返回整数,那是因为返回包含在 for 中,编译器不知道循环是否真的会运行. 也许:

static int Iteration()
{
   int retValue = 0;     // some default value
   for (int i = 0; i < 101; i++)
   {
       retValue = i;
       break;         // break when you get the iteration you want           
   }

   return retValue;
}

尽管代码实际上没有意义,但它应该对您有用。

于 2012-06-25T03:48:11.817 回答