1

そこで、for ループを使って「[]」で作った三角形の例を作ろうとしています。ループが実行されると、指定された入力 2 が出力されます。

[]
[][]

ただし、2 を入力してコンパイルすると、次のようにボックスの別の行が追加されます。

[]
[][]
[][][]

これにはゴースト メカニクスがありますか、それとも何か不足していますか?

import java.util.Scanner;
public class NestedLoops
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a Number between 2-9: ");
        int width=input.nextInt();

        String r ="";
        for(int i=1; i<=width; i++)
        {
            for(int j=1; j<=i; j++)
            {
                r=r+"[]";
                System.out.println(r);
            }

        }


    }


}
4

2 に答える 2

5

コメントを読めば、あなたが何を間違えたかについてのヒントがたくさんあります。

しかし、本当に必要なのは、自分でトラブルシューティングを行う方法に関するアドバイスです。

  • Joel は、デバッガーを使用することを提案しています。これについて教えられていない場合は、使用している IDE に関連するチュートリアルを見つける必要があります。

  • ruakh は、トレース プリントをコードに追加して、重要な場所で変数の値を出力することを提案しています。この方法も機能します。特に、プログラムにデバッガーを接続できない場合に有効です。

  • プログラムを「手で実行」することをお勧めします。紙と鉛筆を用意して、変数の名前と値の「スロット」を書き留めます。ここで、書かれているとおりにステートメントを実行し、紙に変数の値を書き込んだり変更したりしているふりをします。

そしてもちろん、上記の内容を解釈し、実際に何が起こっているのかを理解し、それを修正するための計画を立てるために、頭脳を使用する必要があります。

トラブルシューティング/デバッグは、練習で習得できるものです。つまり、自分で行うことです。生産的なプログラマーになるためには、これを学ぶ必要があります。

自分でトラブルシューティングを行うことのもう 1 つの利点は、コードを読んで理解するスキル、そして最終的にはコードを書くスキルを伸ばすのに役立つことです。そして、それは...私の友人...それがあなたの宿題のポイントです!

于 2013-02-17T02:22:16.093 に答える
1

このために必要なforループは1つだけです。

    for(int i=1; i<=width; i++)
    {
        r=r+"[]";
        System.out.println(r);
    }
于 2013-02-17T02:06:33.603 に答える