为什么 for 循环在我的 Java 程序中迭代超过给定条件
Why for loop is iterating more than given condition in my Java program
我正在尝试使用 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
您在循环中更改了 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*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
的值打印到打印语句中即可。因此,解决方案可能是
public class Test {
public static void main(String args[]) {
int n=5;
for(int a=1; a<=n; a++ ) {
System.out.println(a*n);
}
}
}
//感谢您的回复,在您的帮助下我才能够找出问题所在
//这就是我如何解决限制迭代的问题/
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);
}
}
}
我正在尝试使用 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
您在循环中更改了 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*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
的值打印到打印语句中即可。因此,解决方案可能是
public class Test {
public static void main(String args[]) {
int n=5;
for(int a=1; a<=n; a++ ) {
System.out.println(a*n);
}
}
}
//感谢您的回复,在您的帮助下我才能够找出问题所在 //这就是我如何解决限制迭代的问题/
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);
}
}
}