我是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)
//{
//}
}
什么方法返回什么?不要让人们阅读这些混乱的代码来弄清楚你的问题是什么。如果返回的数组是空的,这意味着向数组添加值的条件永远不会满足。你假设太多了。调试器中的传递将比在这里被动地提出问题并取决于其他人为你做你的工作更快速,更明确地回答它。 – duffymo
请注意,您的方法正在返回一些值,但您不会在变量中分配值,也不会打印任何内容以了解代码的行为方式。 –
我们也可以问“为什么月亮是平方的?” –