在main函数内部调用时程序终止

时间:2015-11-08 18:11:02

标签: java call

我是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();
}

1 个答案:

答案 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++)
              ^^^