2017-02-28 8 views
-2

は、これが満たされた正方形のforループで囲ま形状を描画する方法

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"); 
} 

を描画するために私のコードですが、私は、私は額入りの形状をしたい場合、それはまだ動作しますどのように知ってほしいです。
3つ以上のFORループが必要ですか?
任意の例では、私を助けます:)

答えて

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 "空の"行が必要です(空行は1つの$で始まりn-2つの空白で始まり、1つの$で終了します):

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

:座標は、フレームに対応する場合、その後$を印刷して、座標が内部空間に対応する場合は、スペースを印刷します。

+0

私は2つのループでそれをやろうとしたので、実際にどのように動作するのか理解してくれてありがとう、ありがとうございます。しかし、それは不可能と思われます。 – alex213

+0

私の2番目の解決策は「2つのforループのみ」だと思いませんか? –

+1

うん、私は2つのループでそれを知っていて、私は第2のものをやりたいと思っていますが、私は最初に試してみると、それは私にとっては不可能だと思われます: – alex213

関連する問題