为什么for循环要在我的Java程序中迭代超过给定条件

时间:2019-09-09 07:37:27

标签: java for-loop factorial

我正在尝试使用for循环(具有迭代次数)来查找整数的因式分解,但输出大于指定的循环数。

我在笔记本电脑上写了相同的代码,但是在特定的迭代次数且不超过一定数量的情况下,它可以正常工作。

public class Test {
    public static void main(String args[]) {
        int n=5;
        for(int a=1; a<=n; a++ ) {
            n=a*n;
            System.out.println(n);
        }
    }
}

输出

5
10
30
120
600
3600
25200
201600
1814400
18144000
199584000
-1899959296

3 个答案:

答案 0 :(得分:3)

您正在循环中更改n的值,因此要进行更多的迭代。使用另一个变量来计数循环,例如

public class Test {
    public static void main(String args[]) {
        int n=5, counter=5;
        for(int a=1; a<=counter; a++ ) {
            n=a*n;
            System.out.println(n);
        }
    }
}

答案 1 :(得分:0)

我想您正在寻找类似的东西:

1*n = n
2*n = 2n

... ... ...

(n-1)*n = n(n-1)
n*n = n^2

因此,部分结果类似于a*n,其中n是固定的,并且a递增1直到n。在您的代码中,您放置了n=a*n,这意味着您的n在每次迭代中都会更新。不要更新n的值,该值将删除包含n=a*n的行。实际上,您也不需要counter变量。只需将a*n的值打印到print语句中。因此,解决方案可能是

public class Test {
    public static void main(String args[]) {
        int n=5;
        for(int a=1; a<=n; a++ ) {
            System.out.println(a*n);
        }
    }
}

答案 2 :(得分:0)

//感谢您的帮助,我能够找出问题所在 //这就是我克服限制迭代的问题的方式/

public class Test {
public static void main(String args[]) {
    int n=5;
    int counter=n;

    for(int a=1; a<=counter; a++ ) {
        n=a*n;
    System.out.println(n);
    }
}
}
相关问题