我试图从我的代码中获取以下输出:
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
答案 0 :(得分:2)
只需将if(i == j)
更改为if(j <= i)
即可,一切正常!
长解释:
考虑逻辑
i
是外部循环,负责每一行j
是内部循环,用 - 在行中打印每个字符(x
和o
)j
的值),具体取决于行号(即i
)j == 1
)打印到i
位置(j == i
),即j
从1
到{{ 1}},用Java编写的是 i
答案 1 :(得分:0)
条件为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