有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

财务Java编译器告诉我,我并没有启动变量“interest”或“pmt”

我正在尝试编写一个摊销计算器,用户可以在其中输入余额值、十进制形式的利率值和每月付款值。有了这些信息,我想输出美元利息金额、本金金额和新余额。这是我的密码:

import java.util.Scanner;
public class Amortization{
   public static void main(String []args){
      Scanner pmt, interest, balance = new Scanner(System.in);
      System.out.println("What is your balance?");
      double b = balance.nextDouble();
      System.out.println("What is your interest rate in decimal?");
      double i = interest.nextDouble();
      System.out.println("What is your monthly payment?");
      double p = pmt.nextDouble();
      double pv = p-(b*i);
      System.out.println("Your interest amount is " + (b*i));
      System.out.println("Your principal amount is " + pv);
      System.out.println("Your new balance is " + (b-pv));
   }
}

共 (2) 个答案

  1. # 1 楼答案

    您不应该声明从标准输入读取3个扫描仪。声明一个,然后继续阅读。像这样:

    import java.util.Scanner;
    public class Amortization{
       public static void main(String []args){
          Scanner input = new Scanner(System.in);
          System.out.println("What is your balance?");
          double b = input.nextDouble();
          System.out.println("What is your interest rate in decimal?");
          double i = input.nextDouble();
          System.out.println("What is your monthly payment?");
          double p = input.nextDouble();
          double pv = p-(b*i);
          System.out.println("Your interest amount is " + (b*i));
          System.out.println("Your principal amount is " + pv);
          System.out.println("Your new balance is " + (b-pv));
       }
    }
    

    这里的要点是,扫描仪是从输入流读取的对象,而不是正在读取的值。您不需要为每个要读取的值安装新的扫描仪

  2. # 2 楼答案

    正如@nhouser9所说,您不需要三个扫描器,而在回答您的问题时,编译器会说变量没有初始化,因为您只初始化了最后一个变量(balance)。java中的多次初始化不会像您预期的那样起作用(使用相同的值初始化所有变量)