在Java中使用“+,”循环绘制形状
我的作业是用“+,-,|”做形状
我必须这样做:
+--+--+--+
| | | |
+--+--+--+
| | | |
+--+--+--+
| | | |
+--+--+--+
但我在输出中看到了这一点:
+--+--+--+
| | | |
+--+--+--+
| | | |
+--+--+--+
| | | |
+--+--+--+
| | | |
这是我的密码:
public class Method {
void MakingShapes()
{
for (int j = 0; j <= 3; j++) {
for (int i = 0; i <=9; i++) {
if(i%3==0)
{
System.out.print("+");
}
else
{
System.out.print("-");
}
}
System.out.print("\n");
for (int i = 0; i <=9; i++) {
if(i%3==0)
{
System.out.print("|");
}
else
{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
我知道我的错误在循环中,但我找不到它,但它看起来像是在最后一个循环中。 多谢各位
# 1 楼答案
为了使其成为更好的代码,您应该学习的第一件事是通过私有方法使其可重用:例如,您应该编写一个私有方法来打印“+--+--+--+”序列,另一个方法来打印“| | | |”序列
一旦实现了这一点,你只需要一个循环,没有IFs,就可以产生所需的形状。最后,您必须再次调用“+--+--+--+--+”方法
试着用这种方法,并意识到你将如何生成一个简短、易于阅读和维护的程序
# 2 楼答案
问题在于你的外环跑了4次。它将执行内部内容4次,这将导致for循环额外打印
|
字符。尝试向|
循环添加一个条件,确保其运行时间比外部循环少1倍:# 3 楼答案
我认为你可以通过使用不同的方法使它更清晰:
你的方法变成:
很明显,在循环结束后,你只需要额外的horizontalLine()调用来结束显示。正如@JamesC在评论中指出的那样。TaylorIV,要获得目标输出,还需要将循环减少到只运行三次:
# 4 楼答案
我稍微修改了你的代码:我添加了一些方法来提高易读性,并将if语句改为内联语句(同样,为了减少所需的垂直空间,从而提高可读性)