如何修复无效的方法声明;需要返回类型?

时间:2017-06-30 04:01:47

标签: java

我正在尝试制作一个列出1至100,000的素数的程序。我创建了以下代码,但是我收到一条错误,指出“无效的方法声明;需要返回类型”

import java.util.*;
public class primenumbers
{
    public static void main (String[] args)
    {
        ArrayList<Integer> A = new ArrayList<Integer>();
        listPrime(A);
        for(int b = 0; b <= A.length(); b++)
        {
            System.out.println(A[b]);
        }
    }
    public static boolean isPrime(int number)
    {
        for(int f = 2; f <= (number/2) + 1; f++)
        {
            if(number % f == 0)
            {
                return true;
            }
        }
        return false;
    }
    public static listPrime(ArrayList<Integer> A)
    {
        for(int i = 1; i <= 100000; i++)
        {
            if(isPrime(i)==false)
            {
                A.add(i);
                return A;
            }
        }
        return A;
       }
    }

我猜它的东西非常明显,我只是在俯视。感谢。

2 个答案:

答案 0 :(得分:1)

您尚未为listPrime函数添加/指定返回类型。

使用以下public static ArrayList<Integer> listPrime(ArrayList<Integer> A)

替换方法声明

答案 1 :(得分:1)

有很多错误

public static void main (String[] args)
{
    ArrayList<Integer> A = new ArrayList<Integer>();

    listPrime(A);  
    for(int b = 0; b < A.size(); b++)  // use size and < not <=
    {
        System.out.println(A.get(b)); // use get and round brackets
    }
}
public static boolean isPrime(int number)
{
    for(int f = 2; f <= (number/2) + 1; f++)
    {
        if(number % f == 0)
        {
            return true;
        }
    }
    return false;
}
public static void listPrime(ArrayList<Integer> A)  // return void
{
    for(int i = 1; i <= 100000; i++)
    {
        if(isPrime(i)==false)
        {
            A.add(i);
            //return;  // keep going
        }
    }
    return;  // not really needed
   }