打印越来越多的偶数行

时间:2016-10-23 19:50:02

标签: java numbers

我正在尝试打印以下内容:

2
2 4
2 4 6 ..etc

我写的代码(如下)打印以下内容:

2
4 6
8 10 12 ...etc

有人能找到我错的地方吗? n变量来自我不包括的主要方法。

public static void printEvenTable(int n) {
    int i;
    int j;
    int k = 0;

    for (i = 1; i <= n; i++) {
        for (j = 0; j < i; j++)
            System.out.print(" " + (k += 2));
        System.out.println(" ");
    }
}

2 个答案:

答案 0 :(得分:0)

您需要通过在第二个k循环之后立即重新分配0来阻止变量for使用其旧值。在第二个k = 0;循环之前放置for会进行冗余重新分配,因为它已在循环之前分配。确保程序优化。如果您使用的是好的编辑器,如果放在第二个for循环之前,它会显示一些警告。

for (i = 1; i <= n; i++) {
    for (j = 0; j < i; j++) {
         System.out.print(" " + (k += 2));
     }
     k=0;
     System.out.println(" ");
}

答案 1 :(得分:-1)

这里,在第一次执行内循环k从初始值2变为k之后,内循环在每个步骤中将变量2增加0 { {1}}。在外循环k的第二次迭代中,以2开头。在k+=2之后,k变为4,因此第二行输出从4开始。这就是为什么我们需要在每个内循环之前将k重新初始化为0

public static void printEvenTable(int n) {
    int i;
    int j;
    int k = 0;

    for (i = 1; i <= n; i++) {
         k = 0;
         for (j = 0; j < i; j++)
            System.out.print(" " + (k += 2));


        System.out.println(" ");
    }
}