我正在尝试打印以下内容:
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(" ");
}
}
答案 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(" ");
}
}