0

次のような対角線を作成しようとしています。

*
 *
  *
   *
    *
     *
      *
       *
        *

私はネストされたループを使用する必要があり、Java を使用するすぐにプログラムできる Java というプログラムを使用しています。これは私のコードですが、対角線にする方法がわかりません。

// The "E006" class.
import java.awt.*;
import hsa.Console;

public class E006
{
    static Console c;           // The output console

    public static void main (String[] args)
    {
        c = new Console ();
        int i, j;
        for(i = 1; i <= 1; i++)
            for(j = 1; j < 10; j++)
                c.println("*");

    } // main method
} // E006 class

とても簡単なことだと思いますが、始めたばかりなのでどうすればいいのかわかりません。ネストされたループ (ループ内のループ) を使用する必要があります。

誰かがこれで私を助けることができれば、それは大きな助けになるでしょう.

4

5 に答える 5

1

これは学校の課題のように聞こえるので、解決するつもりはありません。ここにいくつかのヒントがあります:

  • アスタリスクだけでなく、スペースを印刷する必要があります
  • 各行にもっと多くのスペースを印刷する必要があります
  • 最初の for ループは 1 回しか実行されません。
  • インデントを改善すると、コードが読みやすくなります。必要でない場合でも、 for ループを括弧で囲みます。

int i, j;
for(i = 1; i <= 1; i++){
    for(j = 1; j < 10; j++){
        c.println("*");
    }
 }
于 2013-03-04T02:35:31.090 に答える
0

適切なループ構造を使用する必要があります。比較部分は問題ありません。この問題の方が自然なので、イテレータを下に移動して0から開始します。

同様に、文字列を作成する必要があります。

// The "E006" class.
import java.awt.*;
import hsa.Console;

public class E006
{
    static Console c;           // The output console

    public static void main (String[] args)
    {
    c = new Console ();
    final int NUM_ROWS = 10 // set this for number of rows
    int i, j;
    for(i = 0; i < NUM_ROWS; i++) {
        String thisLine = "";
        for(j = ; j < i; j++) {
            thisLine += " ";
        } // inner loop
        thisLine += "*";
        c.println(thisLine);
    } // outer loop

    } // main method
} // E006 class
于 2013-03-04T02:38:39.757 に答える
0

最初のループは、印刷したい * 行項目の数を処理する必要があります。2 番目の内部ループは、アスタリスクを出力する前に空白を出力する必要があります。ネストされたループの使用は実際にはわかりません。ただし、それらを使用する必要がある場合:

for (int i = 0; i < lineSegments; i++) { 
   int whitespaces = 0;
   for (int j = 0; j < whiteSpaces; j++)
       Console.print(" ");
   Console.print("*\n");
   whitespaces++;
   Console.flush();
}
于 2013-03-04T02:34:43.610 に答える
0
public class Hehh{
    public static void main(String[] args){
    int i, j;
        for(i = 0; i < 9; i++){
        for(j = 0; j <= i; j++){
                if(j == i) System.out.println("*");
                else System.out.print(" ");
            }
    }
    }
}
于 2013-03-04T02:35:11.303 に答える
-1

これはあなたが意図したものだと思います(テストされていません):

// The "E006" class.
import java.awt.*;
import hsa.Console;

public class E006
{
    static Console c;           // The output console

    public static void main (String[] args)
    {
        c = new Console();
        int i, j;
        for(i = 0; i < 10; i++) {
            for(j = 0; j < i; j++) {
                c.print(" ");
            }
            c.println("*");
        }
    } // main method
} // E006 class

なぜそれが機能するのですか?最初のループ (i=0) では、印刷スペースを 0 回ループし、改行を含むアスタリスクを追加します (println は末尾に改行を追加します)。次のループでは、アスタリスクの前に 1 つのスペースを出力し、次は 2 を出力します。

psこれは宿題ですか?タグ付けする必要があります。

于 2013-03-04T02:33:33.123 に答える