将for语句中的值作为返回值获取

时间:2012-06-25 03:42:20

标签: c# loops for-loop iteration

Id需要我在Iteration方法中作为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;
    }



}

}

2 个答案:

答案 0 :(得分:4)

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

在循环之后只需在函数末尾放置一个return -1;即可满足编译器。

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

答案 1 :(得分:0)

如果你没有编译,如果你说Iteration函数抱怨所有代码路径都没有返回一个整数,那是因为返回包含在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;
}

虽然代码没有意义,但它应该适合你。