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

C# 获取for语句中的值作为返回值,c#,loops,for-loop,iteration,C#,Loops,For Loop,Iteration,我需要迭代方法中的i作为迭代()的返回值……此时它错误地说它没有返回值。我假设它在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(Iterati

我需要迭代方法中的i作为迭代()的返回值……此时它错误地说它没有返回值。我假设它在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;
    }



}
使用系统;
班级计划
{
int i=1;
静态字符串globalValue=“I在任何方法之外声明”;
静态void Main()
{
对于(int b=0;b<101;b++)
{
Console.Write(迭代());
}
}
静态字符串FizzBuzz()
{
字符串f=“word1”;
返回f;
}
静态字符串Buzz()
{
字符串b=“word2”;
返回b;
}
静态int迭代()
{
对于(int i=0;i<101;i++)
{
返回i;
}
}
}

为了确定函数是否总是返回值,C#编译器在代码导航方面的能力有限。虽然您编写的代码总是会返回,但编译器“不够聪明”无法理解这一点

只需输入一个
return-1在循环后的函数末尾,以满足编译器的要求

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

C#编译器只有有限的能力来导航代码,以确定函数是否总是返回值。虽然您编写的代码总是会返回,但编译器“不够聪明”无法理解这一点

只需输入一个
return-1在循环后的函数末尾,以满足编译器的要求


当然,您现在拥有的代码没有多大意义,因为
Iteration()
将始终返回
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;
}
静态int迭代()
{
int retValue=0;//一些默认值
对于(int i=0;i<101;i++)
{
retValue=i;
break;//在得到所需迭代时中断
}
返回值;
}

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

如果您说迭代函数抱怨所有代码路径都不返回整数,那是因为返回包含在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;
}
静态int迭代()
{
int retValue=0;//一些默认值
对于(int i=0;i<101;i++)
{
retValue=i;
break;//在得到所需迭代时中断
}
返回值;
}

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

您到底想做什么?你想让它把数字0到100打印一百次吗?即使你让它工作,它也只会打印100“0”。。。我猜不是你的目标。你到底想做什么?你想让它把数字0到100打印一百次吗?即使你让它工作,它也只会打印100“0”。。。我猜不是你的目标。