减少While循环

时间:2018-08-29 17:17:52

标签: java

扫描仪不会浪费欧元:

import java.text.DecimalFormat;
import java.util.Scanner;

public class Luottolaskuri {

    private static Scanner lukija;

    public static void main(String[] args) {
        lukija = new Scanner(System.in);
        System.out.print("Anna luotollisen ostoksen hinta: ");
        double loh = lukija.nextDouble();
        System.out.print("Anna kuukausierien lukumäärä: ");
        int kkelkm = lukija.nextInt();
        int counter = 1;
        while (counter < 7) {
            double lasku = loh / kkelkm;
            double viimlasku = loh - lasku;
            DecimalFormat kaksiDesimaalia = new DecimalFormat("0.00");
              String muotoiltu = kaksiDesimaalia.format(lasku);
              String muotoiltu2 = kaksiDesimaalia.format(viimlasku);
            System.out.println(counter + ". erä "+ muotoiltu +" euroa, luottoa jäljellä " + muotoiltu2 + " euroa");
            counter++;
            viimlasku--;
        }

    }

}

应如下所示:

Anna luotollisen ostoksen hinta: 500,0
Anna kuukausierien lukumäärä: 4
1. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
2. erä 125,00 euroa, luottoa jäljellä 250,00 euroa
3. erä 125,00 euroa, luottoa jäljellä 125,00 euroa
4. erä 125,00 euroa, luottoa jäljellä **0,00** euroa

但是我的看起来像这样:

Anna luotollisen ostoksen hinta: 500,0
Anna kuukausierien lukumäärä: 4
1. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
2. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
3. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
4. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
5. erä 125,00 euroa, luottoa jäljellä 375,00 euroa
6. erä 125,00 euroa, luottoa jäljellä **375,00** euroa

1 个答案:

答案 0 :(得分:0)

我评论了更改的行:

import java.text.DecimalFormat;
import java.util.Scanner;

public class Luottolaskuri {

    private static Scanner lukija;

    public static void main(String[] args) {
        lukija = new Scanner(System.in);
        System.out.print("Anna luotollisen ostoksen hinta: ");
        double loh = lukija.nextDouble();
        System.out.print("Anna kuukausierien lukumäärä: ");
        int kkelkm = lukija.nextInt();
        int counter = 1;
        double lasku = loh / kkelkm; // initialize outside the loop
        double viimlasku = loh; // initial value
        while (counter <= kkelkm) { // use # of iterations, not a hardcoded value
            viimlasku -= lasku; // substract
            DecimalFormat kaksiDesimaalia = new DecimalFormat("0.00");
              String muotoiltu = kaksiDesimaalia.format(lasku);
              String muotoiltu2 = kaksiDesimaalia.format(viimlasku);
            System.out.println(counter + ". erä "+ muotoiltu +" euroa, luottoa jäljellä " + muotoiltu2 + " euroa");
            counter++;
        }

    }

}