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;
}
}
}
答案 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;
}
虽然代码没有意义,但它应该适合你。