首页 > 解决方案 > 使用 While 循环

问题描述

扫描仪不会减去欧元:

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

标签: 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;
        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++;
        }

    }

}

推荐阅读