0

私はこのコードでいくつかの問題を抱えています。これは私のJavaクラスの割り当てです。期限が過ぎていますが、問題を理解しようとしているだけです。

問題:

WileyPlus(自動修正サーバー)にアップロードすると、「int n = 14」の場合、結果が「24、15」になると予想されますが、「23、16」と表示されます。ただし、12 を入力すると、期待どおりの "7,5" が得られます。私はこれを引き起こしているものを見つけることができないようです。

コードを使用すると、より理にかなっています。

public class RentalCar {
    private boolean rented;
    private static int availableCars = 0;
    private static int rentedCars = 0;

    public RentalCar() {
        availableCars++;
        rented = false;
    }

    public static int numAvailable() {
        return availableCars;
    }

    public static int numRented() {
        return rentedCars;
    }

    public boolean rentCar() {
        availableCars--;
        rentedCars++;
        rented = true;
        return rented;
    }

    public boolean returnCar() {
        if (rented) {
            availableCars++;
            rentedCars--;
            rented = false;
        }

        return false;
    }

    public static String check(int n) {
        RentalCar[] cars = new RentalCar[n];
        for (int i = 0; i < n; i++) {
            cars[i] = new RentalCar();
        }

        for (int i = 0; i < n; i = i + 2) {
            cars[i].rentCar();
        }

        for (int i = 0; i < n; i = i + 3) {
            cars[i].rentCar();
        }

        for (int i = 0; i < n; i = i + 4) {
            cars[i].returnCar();
        }

        return RentalCar.numRented() + " " + RentalCar.numAvailable();
    }
}
4

2 に答える 2

0
public boolean rentCar() {
    if (!rented) {
        availableCars--;
        rentedCars++;
        rented = true;
    }
    return rented;
}

(車がすでにレンタルされているかどうかを確認してくださいrentCar()

また、戻り値の目的がわかりません。

public void rentCar() {
    if (!rented) {
        availableCars--;
        rentedCars++;
        rented = true;
    }
}
于 2013-05-04T16:45:10.693 に答える