我有一个静态方法,可以找出质数,并且工作正常,但是我试图保留在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;
}
}
答案 0 :(得分:2)
由于Java不支持嵌套函数,因此出现此错误。 您正在其他方法中实现方法,这是不可能的。要嵌套方法,请使用Java 8中的lambda。
看看Can methods in java be nested and what is the effect? [closed]