java - 使用 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
解决方案
我评论了更改的行:
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++;
}
}
}
推荐阅读
- javascript - 来自弹出窗口的异步 onClick 事件返回值
- java - 使用 Gradle 时 Keycloak 无法加载提供程序类
- docker - 为什么 strace 默认在 docker 中工作?
- c# - Visual Studio 调试器随机跳过行
- python - 修剪模型不会提高推理速度或减小模型大小
- javascript - 自定义钩子中的useEffect没有在React中以正确的顺序调用
- json - 创建一个在读取 JSON 字符串后摄取数据的存储过程
- php - 更新客户收货地址时发送电子邮件通知
- oracle - 查找由(添加两个列)行复制的行
- google-bigquery - 对表的一列进行更新的成本是否与 BigQuery 中的 FTS 一样高?