【发布时间】:2018-02-18 22:27:41
【问题描述】:
我对 java 还很陌生,在过去的一年里我获得了一些使用 python 和 C++ 的编程经验;但是,我发现 java 更令人困惑。我在这里尝试做的是通过使用 for 循环确定数字(用户输入)是否为素数。这是我到目前为止的代码:
public static boolean isPrime(int x)
{
boolean prime = true;
if (x % 2 == 0)
prime = false;
if (x % 2 != 0)
{
for (int i = 3; i*i <= x; i+=2)
{
if (x % i == 0)
prime = false;
}
}
return prime;
}
我在这个问题上已经坚持了很长一段时间,如果有人能帮我解决这个问题,那就太好了。
【问题讨论】:
-
你有什么错误吗?
-
您的代码将为 1 返回 true,但 1 不是质数。此外, 2%2=0 所以你的代码将返回 false 为 2 尽管它是一个素数。
-
我们应该弄清楚什么?你怎么称呼那个方法,你期望什么,你会得到什么?为什么你期望你所期望的?
-
我得到的错误是,对于我进入第二个运行此方法的程序的任何数字,我一直收到错误消息。我很困惑从这里去哪里。我只想输入“2”,输出为真,或者输入“6”,输出为假。
-
欢迎来到 Stack Overflow!看来您需要学习使用调试器。请帮助自己一些complementary debugging techniques。如果您之后仍有问题,请随时回来提出更具体的问题。