简体   繁体   English

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

[英]Program terminates when called inside main function

I am new to java programming, I have programmed in C and C++ but have moved to Java recently, So I am a bit confuse about how things are in Java.我是 Java 编程的新手,我用 C 和 C++ 编程,但最近转向 Java,所以我对 Java 中的事情有点困惑。 I am calling a function inside my main but the program gets terminated, I don't know why its happening and can't figure it out.我在 main 中调用了一个函数,但是程序被终止了,我不知道它为什么会发生并且无法弄清楚。 Here is my program这是我的程序

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();
}
  • Your n = sc.nextInt();你的n = sc.nextInt(); is outside the scope of main() function.超出了main()函数的范围。 Moreover your are closing the scanner first.此外,您要先关闭扫描仪。

  • You called isPrime(n);你打电话给isPrime(n); which returns boolean but you did not catch the return value.它返回boolean但您没有捕获return值。

You want to do something like:你想做这样的事情:

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

Finally , your prime calculation is wrong.最后,你的素数计算是错误的。 A prime number is divisible by itself, so change质数可以被它自己整除,所以改变

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

to

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在主程序终止之前重新运行程序 - rerun program before main terminates 关于main方法终止时的jvm终止 - Regarding jvm termination when main method terminates 涉及GUI时,程序立即终止 - Program terminates immediately when GUI's are involved 程序终止时,用`exec`终止进程运行 - Terminate process run with `exec` when program terminates Java主线程终止时如何管理工作线程生命周期? - How to manage worker thread lifecycles when main Java thread terminates? 成员函数在单独调用时接受值,但在主函数中调用时不接受 - Member function accepts values when called separately but not when called in main function 从-main调用时Clojure函数未将输出写入文件 - Clojure function not writing output to file when called from -main 批处理文件在执行Java程序后立即终止(如果从另一个Java程序调用了批处理文件) - Batch file immediately terminates after executing a Java program (if batch file is called from another Java program) Java程序终止时无法关闭文件是否有任何危害? - Is there any harm in failing to close a file when a Java program terminates? 使用 delayElements 时程序在 Flux 完成之前终止 - Program terminates before Flux would finish when using delayElements
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM