【发布时间】:2021-11-08 06:25:30
【问题描述】:
在下面的 C# sn-p 中,我循环遍历所有整数,直到 x,并在找到 x 的除数时立即返回。
class Program
{
static void Main(string[] args)
{
}
static int LowestDivisor(int x)
{
if (x < 0)
x *= -1;
if (x == 0 || x == 1)
return -1;
for (int i = 2; i <= x; i++)
{
if (x % i == 0)
{
return i;
}
}
}
}
}
我看不出是什么导致编译器给出错误CS0161: not all code paths return a value。在素数的情况下,for 循环的最后一次迭代返回素数。如果不是,则将在较早的迭代中返回除数。因此,for all code paths 会返回一个值。我错了吗?
【问题讨论】:
标签: c# compiler-errors return