如何使用FOR循环绘制框架形状

时间:2017-02-28 19:03:55

标签: java for-loop

这是我绘制填充方块的代码

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循环吗? 任何例子都会帮助我:)

1 个答案:

答案 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();
}

其中的想法是:如果坐标对应于框架,则打印$,如果坐标对应于内部空间,则打印空格。