我刚刚开始
java,并编写了一个简单的程序来返回输入数字的因子.有两个类,一个测试人员和一个你在下面看到的人.
不幸的是,我的输出,比如我输入150,是2,3,5,5,5.
我知道为什么会这样;当局部变量q = i时,我们显然得到2,3,5,5,但是当不满足第一个if语句中的条件时,q被读为0.
有没有办法从输出中排除特定的整数,在本例中为0?几个小时我一直在努力解决这个问题,所以显然我没有看到什么.
我意识到有更简单的方法来编写这个程序,但所有方法都必须保持原样……
public class FactorGenerator {
private int y;
private int i;
public FactorGenerator(int numberToFactor)
{
y = numberToFactor;
i = 2;
}
public boolean hasMoreFactors()
{
if (i <= y)
{
return true;
}
else
{
return false;
}
}
public int nextFactor()
{
int q=0;
if( y % i != 0)
i++;
if( y % i == 0)
{
y = y / i;
q = i;
}
return q;
}
}
最佳答案 快速解决.你需要一个while循环(跳过所有不明确划分y的因素):
if( y % i != 0)
i++;
像这样:
while( y % i != 0){
i++;
}