Java 为什么我的for循环反复打印相同的数字?

Java 为什么我的for循环反复打印相同的数字?,java,Java,编写一个名为printPowersOfN的方法,该方法接受一个基数和一个指数作为参数,并打印从base0(1)到该最大幂(包括)的基数的每一次幂。例如,考虑以下调用: printPowersOfN(4, 3); printPowersOfN(5, 6); printPowersOfN(-2, 8); 这些调用应产生以下输出: 1 4 16 64 15251256253125 15625 1-2 4-8 16-32 64-128 256 public class prac { pu

编写一个名为printPowersOfN的方法,该方法接受一个基数和一个指数作为参数,并打印从base0(1)到该最大幂(包括)的基数的每一次幂。例如,考虑以下调用:

printPowersOfN(4, 3);

printPowersOfN(5, 6);

printPowersOfN(-2, 8);
这些调用应产生以下输出:

1 4 16 64

15251256253125 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();
    }
}
公共类prac{
公共静态void main(字符串[]args){
printPowersOfN(4,3);
printPowersOfN(5,6);
printPowersOfN(-2,8);
}
公共静态无效打印功率OFN(整数num1,整数num2){
int k=(int)Math.pow(num1,num2);

对于(inti=1;i在你计算循环外的幂
k
,然后反复打印。在每次循环迭代中改变的值
i
根本不被使用。

在你计算循环外的幂
k
然后反复打印。在循环过程中改变的值
i
对于每个循环,根本不使用迭代

为什么这只是反复打印最大功率而不是最大功率 在指数之前的所有幂中

因为您正在
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 + " ");
}
intk;
对于(int i=0;i
为什么这只是反复打印最大功率而不是最大功率
在指数之前的所有幂中

因为您正在
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 + " ");
}
intk;

对于(int i=0;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();
}
publicstaticvoidmain(字符串[]args){
printPowersOfN(4,3);
printPowersOfN(5,6);
printPowersOfN(-2,8);
}
公共静态无效打印功率OFN(整数num1,整数num2){
int k=0;

对于(int i=0;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();
}
publicstaticvoidmain(字符串[]args){
printPowersOfN(4,3);
printPowersOfN(5,6);
printPowersOfN(-2,8);
}
公共静态无效打印功率OFN(整数num1,整数num2){
int k=0;

对于(int i=0;我为什么每次在循环中声明
k
呢?为什么每次在循环中声明
k
呢?您的代码不会按照John发布的要求为0幂工作。我认为您需要更正您的答案。您的代码不会按照John发布的要求为0幂工作。我认为您需要更正您的答案。