我是java编程的新手,我已经使用C和C ++进行了编程,但最近已经转移到了Java,所以我对Java中的内容有点混淆。我在我的主要内部调用一个函数,但程序终止,我不知道它为什么会发生并且无法弄明白。这是我的程序
package Prime;
import java.util.Scanner;
public class isprime
{
public static boolean isPrime (int n)
{
int flag=0;
for (int i=2;i<=n;i++)
{
if(i%n==0)
{
flag=1;
}
}
if(flag==1)
{
return false;
}
else
{
return true;
}
}
public static void main(String[] args)
{
int n;
System.out.println("Please enter a number you want to test");
Scanner sc = new Scanner(System.in);
sc.close();
isPrime(n);
}
n = sc.nextInt();
}
答案 0 :(得分:1)
您的n = sc.nextInt();
超出了main()
功能的范围。此外,您正在关闭扫描仪。
您致电isPrime(n);
并返回boolean
,但未收到return
值。
你想做类似的事情:
public static void main(String[] args) {
int n;
System.out.println("Please enter a number you want to test");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
if (isPrime(n)) {
System.out.println("prime");
} else {
System.out.println("not prime");
}
sc.close();
}
最后,您的 prime 计算错误。素数本身可以被整除,所以改变
for (int i=2;i<=n;i++)
到
for (int i=2;i < n;i++)
^^^