簡體   English   中英

程序在 main 函數內部調用時終止

[英]Program terminates when called inside main function

我是 Java 編程的新手,我用 C 和 C++ 編程,但最近轉向 Java,所以我對 Java 中的事情有點困惑。 我在 main 中調用了一個函數,但是程序被終止了,我不知道它為什么會發生並且無法弄清楚。 這是我的程序

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();
}
  • 你的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();
}

最后,你的素數計算是錯誤的。 質數可以被它自己整除,所以改變

for (int i=2;i<=n;i++)

for (int i=2;i < n;i++)
              ^^^  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM