布尔返回类型的方法在main()内部不起作用

时间:2018-08-26 04:45:00

标签: java methods static

我有一个静态方法,可以找出质数,并且工作正常,但是我试图保留在main方法中的同一方法却通过声明参数的非法修饰符而抛出了错误,并且void方法未返回值 相同的代码在main方法之外也可以正常工作,任何人都建议我为什么在main()中不起作用。谢谢.. !!

我的方法

public static boolean isPrimeNumber(int number) {
        if (number == 2 || number == 3) {
            return true;
        }
        if (number % 2 == 0) {
            return false;
        }
        int sqrt = (int) Math.sqrt(number) + 1;
        for (int i = 3; i < sqrt; i += 2) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

在main()里面有很多错误消息 inside main

解决方案

感谢Logan ---需要在main方法之外添加方法 我的工作代码添加到了

public class Squar {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        Squar s = new Squar();
        //System.out.println(s.isPrime(num));
        scan.close();
        System.out.println("M2 "+s.isPrimeNumber(num));


    }
    public  boolean isPrimeNumber(int number) {
        if (number == 2 || number == 3) {
            return true;
        }
        if (number % 2 == 0) {
            return false;
        }
        int sqrt = (int) Math.sqrt(number) + 1;
        for (int i = 3; i < sqrt; i += 2) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

}

1 个答案:

答案 0 :(得分:2)

由于Java不支持嵌套函数,因此出现此错误。 您正在其他方法中实现方法,这是不可能的。要嵌套方法,请使用Java 8中的lambda。

看看Can methods in java be nested and what is the effect? [closed]