【发布时间】:2012-12-30 23:07:34
【问题描述】:
我是编程新手,我不知道我哪里出了问题。
这是我的主要方法:
import java.util.*;
public class DisplayFactors
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("Enter a integer: ");
String input1 = scan.nextLine();
int input = Integer.parseInt(input1);
FactorGenerator factor = new FactorGenerator(input);
System.out.print(factor.getNextFactor());
while (!factor.hasMoreFactors())
{
System.out.print(factor.getNextFactor());
}
}
}
这是我的课:
public class FactorGenerator {
private int num;
private int nextFactor;
public FactorGenerator(int n)
{
num = nextFactor = n;
}
public int getNextFactor()
{
int i = nextFactor - 1 ;
while ((num % i) != 0)
{
i--;
}
nextFactor = i;
return i;
}
public boolean hasMoreFactors()
{
if (nextFactor == 1)
{
return false;
}
else
{
return true;
}
}
}
目前,如果我输入 15 作为整数,我只能返回一个因子,即 5,但我需要它来显示所有因子:15、5、3 和 1。我哪里出错了?
【问题讨论】:
-
你导入java.util.Scanner了吗? ?
-
while (!factor.hasMoreFactors())应该是while (factor.hasMoreFactors()) -
@Dangerosking 是的,他做到了,您可以在第一行代码
import java.util.*;上看到,这意味着将导入来自java.util的所有需要的类 -
@Dangerosking 我做了 java.util.*,其中包括 Scanner。
-
@Walery Strauch 哦,是的,我没有意识到
标签: java class loops parameters constructor