【发布时间】:2010-03-10 01:03:02
【问题描述】:
我正在尝试制作一种方法来告诉我天气是否是素数是真还是假。这是代码:
class prime
{
public static boolean prime (int a, int b)
{
if (a == 0)
{
return false;
}
else if (a%(b-1) == 0)
{
return false;
}
else if (b>1)
{
prime (a, b-1) ;
}
else
{
return true;
}
}
public static void main (String[] arg)
{
System.out.println (prime (45, 45)) ;
}
}
当我尝试编译这个时,我得到这个错误信息:
prime.java:23: missing return statement
}
^
1 error
我可能会误解错误消息的含义,但在我看来,没有缺少 return 语句,因为我对每组可能的条件都有一个 return 语句。如果 a 为 0,则返回 false,如果不是,则检查 a 是否可被 b 整除,如果是则返回,否则返回,如果 b 大于 1,则重新开始。如果 b 不大于 1 它也会返回。
而且看起来有点乱 使此方法采用两个整数 是相同的int。
我的语法有什么问题/为什么我会收到错误消息?有没有办法让我在 main 中使用的方法只需要一个 int(也许另一种方法将该 int 拆分为两个克隆,然后传递给
public static boolean primeproper?或者有没有更有效的方法 关于我想念的这个 完全?
【问题讨论】:
-
David,我建议您浏览一下 Java 网站上的一些教程。谷歌搜索 java 并点击第一个结果。在尝试处理递归素数查找器之前,您需要一些基础知识。特别注意方法调用和控制结构。
-
这不是我自学的技术作业。这不是为了学校,而是为了自己。我已经在用书了,我应该切换到 java 的教程还是继续使用我正在使用的书?
-
如果您有书,请继续阅读。坚持就会有回报。也许最能帮助您的是使用 IDE 来帮助您在制作错误时指出错误。你看过 Netbeans 或 Eclipse 吗?
-
我安装了 Eclipse。我不知道如何使用它。