Java 为什么什么也不归还?

Java 为什么什么也不归还?,java,arraylist,boolean,return,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

我是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)
    //{
    //}
}

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

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

但现在是严肃的,正如其他一些人评论的那样,这些方法返回值。你必须先了解这些基本概念,然后再尝试其他内容。每次你调用你定义的方法中的一个,你都会得到一些值对象,这是因为你有返回值;声明。但是,当你得到这些值后,你就不能用它们做任何事情,如果你想显示它们,你必须调用一些知道如何在屏幕上显示它们的方法;例如,您可以执行以下操作:

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

我希望能让你开始一点。现在我会让你做这件事,看看为什么你的代码不起作用,因为我可以告诉你它不起作用

什么方法不返回任何内容?不要让人们阅读这些乱七八糟的代码来找出你的问题所在。如果返回的数组为空,则表示永远不会满足向数组中添加值的条件。你假设得太多了。在调试器中进行传递将比被动地在此处提问并依靠其他人为您完成工作更快、更明确地回答问题。请注意,您的方法会返回一些值,但您不会在变量中赋值,也不会打印任何内容来了解代码的行为。我们还可以问为什么月亮广场?谢谢你的反馈。我意识到我一直试图通过getPrimeFactors、iPrime和listPrimesUpTo方法而不是main方法打印值……我真粗心。现在的高中生。。。
System.out.println(getPrimeFactors(10));