为什么没有归还?

时间:2012-10-25 02:00:47

标签: java arraylist boolean return

我是Java的新手,所以请详细解释。它似乎根据Eclipse正确编译,但没有返回任何内容。我知道编码不干净,可能不会返回正确的值。

import java.util.*;

public class PrimesFactory
{
/*
Design a class called PrimesFactory.
This class will calculate the prime factorization of any number,
print a list of all prime numbers as well as
state whether or not a given number is a prime number.
*/
    public static void main(String[] args)
    {
        getPrimeFactors(10);
        isPrime(10);
        listPrimesUpTo(10);
        //isSumOfPrimes(10);
    }
//@returns an ArrayList with all of the prime factors of num
    public static ArrayList<Integer>  getPrimeFactors(int num)
    {
        ArrayList<Integer> primeFacOfNum = new ArrayList<Integer>();
        for (int i = 1; i <= num; i++)
        {
            for (int i2 = 1; i2 <= num; i2++)
            {
                if (num % i == 0 && i % i2 == 0 && i2 != i && i2 != 1)
                {
                    i += 0;
                }
                else
                {
                    primeFacOfNum.add(i);
                }
            }
        }
        return primeFacOfNum;
    }
//@return true if num is a prime number
    public static boolean isPrime(int num)
    {
        boolean prime = false;
        for (int i = 1; i <= num; i++)
        {
            if (num % i == 0 && i != num && i != 1)
            {
                prime = false;
            }
            else
            {
                prime = true;
            }
        }
        return prime;
    }
//@returns a comma separated list of all prime numbers less than num
    public static ArrayList<Integer> listPrimesUpTo(int num)
    {
        ArrayList<Integer> primesUpTo = new ArrayList<Integer>();
        for (int i = 2; i < num; i++)
        {
            for (int i2 = 1; i2 <= i; i2++)
            {
                if (i % i2 == 0 && i2 != i && i2 != 1)
                {
                    i += 0;
                }
                else
                {
                    primesUpTo.add(i);
                }
            }
        }
        return primesUpTo;
    }
//EXTRA  CREDIT
//returns true if num is a sum of all prime numbers
    //public boolean isSumOfPrimes(int num)
    //{
    //}
}

2 个答案:

答案 0 :(得分:1)

这让我傻笑i += 0;呵呵

但现在认真,正如其他一些评论那些方法返回值。在尝试进入其他方面之前,您必须先了解这些基本概念。每当你调用其中一个你定义的方法时,你就会得到一些值(对象),而这是因为你有return something;语句。但是当你获得这些值后,你没有用它们做任何事情,如果你想要显示它们,你将不得不调用一些知道如何在屏幕上显示它们的方法;例如,您可以执行以下操作:

ArrayList<Integer> result = getPrimeFactors(10);
System.out.println(result);

或者只是一行:

System.out.println(getPrimeFactors(10));

我希望让你开始一点点。现在我将让你解决这个问题,看看为什么你的代码不起作用(因为我可以告诉你它没有);)

答案 1 :(得分:-1)

您必须使用函数print()或debug来查看是否返回值。

相关问题