我是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)
//{
//}
}
答案 0 :(得分:1)
这让我傻笑i += 0;
呵呵
但现在认真,正如其他一些评论那些方法返回值。在尝试进入其他方面之前,您必须先了解这些基本概念。每当你调用其中一个你定义的方法时,你就会得到一些值(对象),而这是因为你有return something;
语句。但是当你获得这些值后,你没有用它们做任何事情,如果你想要显示它们,你将不得不调用一些知道如何在屏幕上显示它们的方法;例如,您可以执行以下操作:
ArrayList<Integer> result = getPrimeFactors(10);
System.out.println(result);
或者只是一行:
System.out.println(getPrimeFactors(10));
我希望让你开始一点点。现在我将让你解决这个问题,看看为什么你的代码不起作用(因为我可以告诉你它没有);)
答案 1 :(得分:-1)
您必须使用函数print()或debug来查看是否返回值。