0

こんにちは、私はゆっくりとJavaを学ぼうとしていますが、無限ループに問題があります。以下は私のコードです。コンストラクターの開始からdisplayメソッドの終了まで、最後のエントリが追加された後にループを停止するにはどうすればよいですか?

public UnitResults(int Size, String title)
{            
    this.fName = new String [Size];
    this.surname = new String [Size];
    this.Marks = new int [Size];
    pointer = 0;

    fName[pointer] = "Daniel";
    surname[pointer] = "Scullion";

    Marks[pointer] = 60;
    unitTitle  = title;

    pointer ++;

}

public Boolean add( String tempfName, String tempsName, int newGrade)
{ 
    if (pointer == fName.length)
    {
    System.out.println("The Students Database is full");
    return false;
    }
    else
    { 
        fName [pointer] = tempfName;
        surname [pointer]  = tempsName;
        Marks[pointer] = newGrade;
        pointer ++;
        System.out.println("Student Added");
        return true;
    }
} // end Add

public void display()
{
    System.out.println("Students Results\n");
    for (int index = 0; index < pointer; index++)
    {
        System.out.println( unitTitle + "\n" 
            + fName[index] + "\n"  
            + surname[index] + "\n" 
            + Marks[index] + "\n"
            + "\n" );  
        index++;
    }
}

これで助けてくれてありがとう!

4

1 に答える 1

2

インデックス++; 行は必須ではなく、実際、おそらく無限ループの原因です。index ++は、for()ステートメントですでに指定されています。再び追加するということは、ループごとにインデックスが2ずつ増加することを意味します。

for (int index=0; index < pointer;  index ++)
{

    System.out.println( unitTitle + "\n" 
            + fName[index] + "\n"  
            + surname[index] + "\n" 
            + Marks[index] + "\n"
            + "\n" );  
    index++; // <<<----- this line should not be here

}
于 2012-12-09T21:04:05.483 に答える