这是我不明白的,因为你可以看到我的外环应该只打印5行但是当我添加我的内部循环它打印6行一个空白和5 0123这里发生了什么?为什么我的外环打印了6行?
public static void main (String[] args) {
int x;
int y;
for(x=1; x<=5; x++){
System.out.println();
for (y=0; y<4; y++){
System.out.print(y);
}
}
}
答案 0 :(得分:1)
public static void main (String[] args) {
//dont need to declare variables here. they can be declared in loop like below
for(int x=0; x<5; x++){
System.out.println(); //this is called before inner loop, printing a blank line
for (int y=0; y<4; y++){
System.out.print(y); //print 0-3
}
}
}
如果要在内循环后打印空白行,请在内循环后放置System.out.println()
。
使用调试器逐步执行代码应该是您的第一个故障排除步骤。您还应该像我上面所做的那样标准化循环变量检查。
答案 1 :(得分:0)
循环首先做的是输出换行符。在y
for循环中出现的任何字符出现在下一行之后。因此,这会打印5个换行符,每个换行符后跟下一行的y
个字符。最后一次迭代在第6行打印其字符,该行跟随打印的第5个换行符。
在System.out.println()
y
循环之后移动for
,以便在写完字符后正确结束该行。
答案 2 :(得分:0)
您正在实际输出之前打印新行。在内部for循环后移动System.out.println();
:
public static void main (String[] args) {
int x;
int y;
for(x=1; x<=5; x++){
for (y=0; y<4; y++){
System.out.print(y);
}
System.out.println();
}
}
<强>输出强>:
0123 0123 0123 0123 0123
答案 3 :(得分:0)
你的外循环中的第一条指令是
System.out.println();
表示您将光标移动到下一行(将第一行留空)。
然后
for (y=0; y<4; y++){
System.out.print(y);
发生了,负责在该行中打印0123
。
然后再次在外循环光标的下一次迭代中移动到下一行并打印0123。
考虑在外循环结束时移动System.our.println()
。这样,在将光标移动到下一行之前,首先让内循环打印0123
。
答案 4 :(得分:0)
你的外环首先打印一个空白行,然后在下一行打印0123 尝试
int x;
int y;
for(x=1; x<=5; x++){
for (y=0; y<4; y++){
System.out.print(y);
}
System.out.println();
}