[英]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
的值打印到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);
}
}
}
//感謝您的幫助,我得以找出問題所在///這就是我克服限制迭代次數的方法/
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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.