java方法小程序,为什么报错?应该怎样使用这里创建的prime方法? (jdk8)

public class HelloWorld{
public static void prime(int b,int c){

int a;
int i;
boolean judge=true;
int j=0;
int k=0;

for(a=2;a<=b;a++){
k=j;
if(a==2||a==3){
System.out.print(a+"\t");
k=j;
++j;
judge=false;
}else for(i=(a-1);i>=2;i--){
if(a%i==0){
judge=false;
break;
}else judge=true;
}
if(judge){
System.out.print(a+"\t");
k=j;
++j;
}
if(j%c==0&&j!=k){
System.out.println();
}
}
System.out.println("共"+j+"个质数");
}
public static void main(String[] args){
int m = prime(10,3);
System.out.print(m);
}
}
谢谢各位的回答,补充一下,方法prime单独执行是可行的,我只是想试一下在main里面如何调用方法。 结果没成功, 我是想问怎样才能成功调用我编的prime方法。还是说我编的prime方法本身就有问题? 我试了,直接这样写也不能调用
public static void main(String[] args){
prime(10,3);
}

额~~~ 我错了, 怎么又可以了呢…………
又检查了一遍,可能涉及到两个问题,一个是1楼说的 方法是否有返回值的问题;一个是类似于4楼说的,static void 匹配问题。

第1个回答  2014-06-11
public static void prime(int b,int c) 它没有返回值,你却要int m = prime(10,3);当然不行啊

你可以public static int prime(int b,int c) ,把变量j返回。

还有为什么要把prime定义成静态的方法呢??public int prime(int b,int c),实例化一个对象,就可以了。
ps:不想定义类对象的话,是要将prime定义成静态的。

//满意请采纳
第2个回答  2014-06-11
prime是私有方法,只能被自己使用,也就是说 你在HelloWorld中可以用,其他的地方要是想用就要写publiec 方法,不要加static,如果你加了,那么你在调用这个方法的地方也要加statc,例如:
public static void a(){
b();
}

private static void b(){

}
第3个回答  推荐于2016-06-16
public static void prime(int b,int c){
你定义的是没有返回值的方法 void
用int 变量去接收 肯定报错 int m = prime(10,3);

直接调用怎么不可以呢?
我这都没有问题啊。
静态方法是可以直接调用的。本回答被提问者采纳
第4个回答  2014-06-11
public static void prime

应该是prime方法不能为static静态类型
第5个回答  2014-06-11
int m = prime(10,3);
改成prime(10,3);就成了

Warning: Invalid argument supplied for foreach() in /www/wwwroot/www.t2y.org3v3b34/skin/templets/default/contents.html on line 47
相似回答