【发布时间】:2015-05-07 20:37:03
【问题描述】:
我得到这个错误:
无法将类型“ulong”隐式转换为“bool”
在这里(u*u)for (ulong u = 2; u * u; u++)
下面的代码块。
static bool IsPrime(ulong Num)
{
if (Num < 2) return false;
else if (Num < 4) return true;
else if (Num % 2 == 0) return false;
for (ulong u = 2; u * u; u++)
if (Num % u == 0) return false;
return true;
}
【问题讨论】:
-
错误不明白怎么办?你有
u*u需要一个布尔值,这不是一个布尔值。如果你问我是否理解你的问题,我回复42你会怎么想? -
for语法的第二部分决定了循环的停止条件。它必须是一个布尔值。您可能正在寻找u < (u*u);? -
@NateBarbettini 您提到的条件只有在
u是0或乘法溢出时才成立。 -
@Servy 呃,你是对的。读得太快了,没想到。我认为 Mehrzad Chehraz 说得对。
-
感谢所有输入的家伙,你的速度非常快:)