这是我绘制填充方块的代码
public void draw()
{
System.out.println("filled square with a length of : " + this.getlength() );
for ( int i=0 ; i < this.getlength() ; i ++)
{
System.out.println();
for ( int j=0 ; j < this.getlength() ; j ++)
{
System.out.print("$");
}
}
System.out.println("\n");
}
但是我想知道如果我想要一个框架形状它仍然会起作用 我需要两个以上的FOR循环吗? 任何例子都会帮助我:)
答案 0 :(得分:1)
只需分析您的代码:
for ( int i=0 ; i < this.getlength() ; i++) {
for ( int j=0 ; j < this.getlength() ; j ++) {
System.out.print("$");
}
System.out.println();
}
内部代码生成一整行$
然后使用它一次:
for ( int j=0 ; j < this.getlength() ; j ++) {
System.out.print("$");
System.out.println();
然后你只需要getLength()-2
“空”行(空行以一个$开头,然后是n-2个空格,并以一个$终止):
for ( int i=1 ; i < this.getlength()-1 ; i++) {
System.out.print('$');
for ( int j=1 ; j < this.getlength()-1 ; j ++) {
System.out.print(' ');
}
System.out.println('$');
}
然后在最后一行:
for ( int j=0 ; j < this.getlength() ; j ++) {
System.out.print("$");
}
System.out.println();
另一种方式可能是:
for ( int i=0 ; i < this.getlength() ; i++) {
for ( int j=0 ; j < this.getlength() ; j ++) {
if (i==0 || j==0 || i==this.getLength()-1 || j==this.getLength()-1)
System.out.print("$");
else
System.out.print(' ');
}
System.out.println();
}
其中的想法是:如果坐标对应于框架,则打印$,如果坐标对应于内部空间,则打印空格。