【发布时间】:2014-11-05 13:57:54
【问题描述】:
我正在尝试用 C# 编写一个程序来确定一个数字是否是质数。我使用前两个 if 语句来挑选出许多选项,然后我试图在最后一个 else 语句中嵌套一个循环,它告诉我“检测到无法访问的代码”。
public static bool primeNumber ()
{
Console.Write ("Please enter a number to see if it is a prime number: ");
int num = int.Parse (Console.ReadLine ());
if (num % 2 == 0)
return false;
else if (num % 5 == 0)
return false;
else {
for (int i = 3; i < num / 2; i += 2)
{
if (num % i == 0)
return false;
else
return true;
}
}
}
【问题讨论】:
-
你试过调试吗?
-
这里无法访问的代码是什么?编译器提示了一些代码,你也可以这样做吗?
-
或者你的意思是“不是所有的代码路径都返回一个值”,这是真正的错误?
-
@Harry 无法在无法编译的代码上运行调试器。
-
@hvd 如果问题确实是“检测到无法访问的代码”,那么这将是一个警告,而不是错误。我怀疑 Lasse 是对的,OP 可能意味着“并非所有代码路径都返回值”,这是编译器错误。
标签: c# if-statement unreachable-code