簡體   English   中英

為什么我的for循環反復打印相同的數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM