每当我尝试编译程序时,我都会收到此错误"非静态方法primeNum(int)无法从静态上下文引用#34;。
在这个程序中,我必须编写一个方法来确定一个数字是否为素数,并在一个确定1到100之间所有素数的应用程序中使用此方法。
这是我的代码:
import java.io.*;
import java.util.Scanner;
public class Program7
{
public static void main (String args[])
{
Scanner scanner = new Scanner(System.in);
int x, r=0, prime;
int num[]= new int[100];
while (r<100){
prime=primeNum(x);
System.out.println(prime);
r++;
}
}
public int primeNum (int x){
for(i=1; i<=x; i++){
if(x%i==0)
count++;
return x;
}
if(count==2)
System.out.println();
}
}
答案 0 :(得分:0)
是的,您无法从静态上下文中调用非静态方法。 您有两种选择:
声明primeNum()静态:
static int primeNum (int x){
创建一个primeNum实例并通过该引用调用primeNum():
PrimeNumClass primeNumObj = new PrimeNumClass();
int returnVal = primeNumObj.primeNum(x);