0

まず、飛行機で 10 席を許可するプログラムを作成しようとしています (seatArray[] には既に 10 席が割り当てられています)。ユーザーが希望する座席のタイプ (ファースト クラスまたはコーチ クラス) を入力すると、作成しようとしているこのメソッドは、そのセクションの最初の座席を取得し、予約済みとしてマークする必要があります (以前に定義されたメソッド)。現時点では、while ループと for ループを使用してこの形式のメソッドを使用しています。メソッドのセクションは次のとおりです。

`boolean flag = true;
    if (spec.equals("First Class"))
    {

        for(int i = 0; i < 4 ; i++)
        {
            while(flag)
            {
                seatArray[i] = new Seat(i, spec);
                if(seatArray[i].checkSeatAvailability() == true)
                {
                    seatArray[i].reserveSeat();
                    flag = false;
                }
                else
                {
                    flag = true;
                }
            }
        }
    }`

どのように割り当てるかについての提案はありますか? そうでない場合は、次の席に行きますか?

4

2 に答える 2

0

while(フラグ) を削除し、次のようにコードを変更する必要があります。

 for(int i = 0; i < 4 && flag ; i++)
    {
            seatArray[i] = new Seat(i, spec);
            if(seatArray[i].checkSeatAvailability() == true)
            {
                seatArray[i].reserveSeat();
                flag = false;
            }
            else
            {
                flag = true;
            }
    }
于 2012-12-14T19:45:26.053 に答える
0

Seatクラスを次のように定義します。

public class Seat {
    private static final String ECONOMY = "Economy";
    private static final String FIRST_CLASS = "First Class";
    private String seatingClass = ECONOMY;
    private boolean reserved = false;

    // Default, economy and not reserved. 
    public Seat() {
    }

    public Seat( String seatingClass, boolean reserved ) {
        this.seatingClass = seatingClass;
        this.reserved = reserved;
    }

    public void setIsReserved( boolean reserved ) {
        this.reserved = reserved;
    }

    public boolean isReserved() {
        return reserved;
    }
    // more getters/setters...
}

isReserved()後で、座席配列に予約されていない座席を追加できます。予約されていない場合は、 と を使用してそれらを予約できますsetIsReserved(..)

于 2012-12-14T19:46:48.067 に答える