[英]why is my for loop printing the same number over and over?
編寫一個稱為printPowersOfN的方法,該方法接受一個底數和一個指數作為參數,並打印從base0(1)到最大底數(包括該底數)的每個底數冪。 例如,考慮以下調用:
printPowersOfN(4, 3);
printPowersOfN(5, 6);
printPowersOfN(-2, 8);
這些調用將產生以下輸出:
1 4 16 64
1 5 25 125 625 3125 15625
1 -2 4 -8 16 -32 64 -128 256
public class prac {
public static void main(String[]args) {
printPowersOfN(4,3);
printPowersOfN(5,6);
printPowersOfN(-2,8);
}
public static void printPowersOfN(int num1, int num2) {
int k =(int) Math.pow(num1, num2);
for (int i=1; i<=num2;i++) {
System.out.print( k + " ");
}
System.out.println();
}
}
我的輸出是:64 64 64
15625 15625 15625 15625 15625 15625
256256256256256256256256256256
為什么這只是一遍又一遍地打印最大功率,而不是導致指數的所有冪?(如果我說的正確的話,idk)我在做什么錯? 我想使用Math.pow方法
為什么這只是一遍又一遍地打印最大功率,而不是導致指數的所有冪?
因為您將最大功率存儲在k
:
int k =(int) Math.pow(num1, num2);
並一次又一次地循環打印k。
System.out.print( k + " ");
您還應該更改k的值。 例如,以下應該適合您:
int k;
for (int i=0; i<=num2;i++) {
k =(int) Math.pow(num1, i);
System.out.print( k + " ");
}
您可能需要根據自己的要求進行一些細微的更改,但這可以使您對發生的問題有一個清晰的了解。
在計算循環外的功率k
,只需一遍又一遍地打印出來。 每次循環迭代期間更改的值i
都不會使用。
這將起作用立即嘗試
public static void main(String[]args) {
printPowersOfN(4,3);
printPowersOfN(5,6);
printPowersOfN(-2,8);
}
public static void printPowersOfN(int num1, int num2) {
int k = 0;
for (int i=0; i<=num2;i++) {
k =(int) Math.pow(num1, i);
System.out.print( k + " ");
}
System.out.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.