我是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
請注意,您的方法正在返回一些值,但您不會在變量中分配值,也不會打印任何內容以瞭解代碼的行爲方式。 –
我們也可以問「爲什麼月亮是平方的?」 –