Java 打印数量不断增加的偶数行

Java 打印数量不断增加的偶数行,java,numbers,Java,Numbers,我正在尝试打印以下内容: 2 2 4 2 4 6 ..etc 2 4 6 8 10 12 ...etc 我编写的代码(如下)打印了以下内容: 2 2 4 2 4 6 ..etc 2 4 6 8 10 12 ...etc 谁能看出我哪里做错了?n变量来自main方法,我不包括它 public static void printEvenTable(int n) { int i; int j; int k = 0; for (i = 1; i <= n;

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

2
2 4
2 4 6 ..etc
2
4 6
8 10 12 ...etc
我编写的代码(如下)打印了以下内容:

2
2 4
2 4 6 ..etc
2
4 6
8 10 12 ...etc
谁能看出我哪里做错了?n变量来自main方法,我不包括它

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(" ");
    }
}
公共静态void可打印事件(int n){
int i;
int j;
int k=0;

对于(i=1;i这里,在第一次执行内环后,内环在每个步骤中将变量
k
增加
2
,从初始值
0
变为
2
。在外环的第二次迭代中
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(" ");
    }
}
公共静态void可打印事件(int n){
int i;
int j;
int k=0;

对于(i=1;i您需要防止变量
k
使用其旧值,方法是在第二个
for
循环之后重新分配0。将
k=0;
放置在第二个
for
循环之前会导致重复的重新分配,因为它在循环之前就已经被分配了。确保程序优化。如果e使用一个好的编辑器,如果将它放在第二个
for
循环之前,它会向您显示一些警告

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

for(i=1;i
k
的初始化目前不在您的循环范围内。这已经成功了,谢谢。为了我自己的理解,您能解释一下为什么需要更改吗?@JEarls我已经解释过了。请检查编辑。如果有帮助,请随意接受它作为答案。