从java方法返回排除特定整数

我刚刚开始
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++;
}
点赞