嵌套的 For 循环给出不正确的输出
Nested For Loops Giving Incorrect Output
我正在尝试从我的代码中获取以下输出:
x o o o o
x x o o o
x x x o o
x x x x o
x x x x x
这是我的代码:
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
System.out.print(" x ");
} else {
System.out.print(" o ");
}
}
System.out.println();
}
但我无法获得正确的输出。我使用此代码得到以下输出:
x o o o o
o x o o o
o o x o o
o o o x o
o o o o x
在条件 i == j
的情况下,您只会得到对角线元素中的 x
。如果您想要所需的输出,则必须将条件修改为 i >= j
。
这是更正后的代码片段:
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i >= j) {
System.out.print(" x ");
} else {
System.out.print(" o ");
}
}
System.out.println();
}
输出:
x o o o o
x x o o o
x x x o o
x x x x o
x x x x x
只需将 if(i == j)
更改为 if(j <= i)
即可!
详细解释:
想想逻辑
i
为外循环,负责每一行
j
是内部循环,在行 中打印每个字符(x
和o
)
- 那么应该打印多少x(即
j
的值),取决于行号(即i
)
- 从第一个位置(
j == 1
)打印x,到第i
个位置(j == i
),即j
从1
到i
,写在Java中就是j <= i
我正在尝试从我的代码中获取以下输出:
x o o o o
x x o o o
x x x o o
x x x x o
x x x x x
这是我的代码:
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
System.out.print(" x ");
} else {
System.out.print(" o ");
}
}
System.out.println();
}
但我无法获得正确的输出。我使用此代码得到以下输出:
x o o o o
o x o o o
o o x o o
o o o x o
o o o o x
在条件 i == j
的情况下,您只会得到对角线元素中的 x
。如果您想要所需的输出,则必须将条件修改为 i >= j
。
这是更正后的代码片段:
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i >= j) {
System.out.print(" x ");
} else {
System.out.print(" o ");
}
}
System.out.println();
}
输出:
x o o o o
x x o o o
x x x o o
x x x x o
x x x x x
只需将 if(i == j)
更改为 if(j <= i)
即可!
详细解释:
想想逻辑
i
为外循环,负责每一行j
是内部循环,在行 中打印每个字符(- 那么应该打印多少x(即
j
的值),取决于行号(即i
) - 从第一个位置(
j == 1
)打印x,到第i
个位置(j == i
),即j
从1
到i
,写在Java中就是j <= i
x
和o
)