1

ループから抜け出せない理由がよくわかりません。これが私のプログラムです:

public static void main(String[] args) {

    Scanner input = new Scanner (System.in);

    double tution, rate, r, t, realpay, multiply, start;
    start = 0;

    while(start != -1)
    {
        System.out.print("Press 1 to start, -1 to end: ");
        start = input.nextDouble();

        System.out.print("Please enter the current tution fee for the year: ");
        tution = input.nextDouble();

        System.out.print("Enter in the amount of interest: ");
        rate = input.nextDouble();

        r = 1 + rate;

        System.out.print("Please enter the number of years: ");
        t = input.nextDouble();
        multiply = Math.pow(r,t);
        realpay = tution * multiply;

        System.out.println("the cost of your tution fee: " + realpay);

        if (start == -1)
        {
            break;
        }
    }
}

何が悪いのか教えていただけますか?

4

3 に答える 3

7

読み取り開始後にブレークを移動する必要があります

start = input.nextDouble();
if (start == -1) {
    break;
}

Else プログラムは続行し、-1 を入力してもループの最後で中断します

于 2012-10-21T04:36:59.170 に答える
4

テスト

if (start == -1) {
    break;
}

直後に行う必要があります

start = input.nextDouble();

あなたの場合、実際にはwhileループから抜け出していますが、ループの本体を実行した後でのみです。

を として宣言startし、doubleその値を でテストすることによって発生する可能性のある問題にも注意してください==。このような変数については、できれば . として宣言する必要がありますint

于 2012-10-21T05:03:39.283 に答える
0

If ブロックを while ループの外に移動します。-1を読み取ると、ifブロックへのwhileループに入ることができないため、壊れることはありません。

外に出すと壊れます。

于 2013-11-26T18:02:56.360 に答える