财务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));
}
}
# 1 楼答案
您不应该声明从标准输入读取3个扫描仪。声明一个,然后继续阅读。像这样:
这里的要点是,扫描仪是从输入流读取的对象,而不是正在读取的值。您不需要为每个要读取的值安装新的扫描仪
# 2 楼答案
正如@nhouser9所说,您不需要三个扫描器,而在回答您的问题时,编译器会说变量没有初始化,因为您只初始化了最后一个变量(balance)。java中的多次初始化不会像您预期的那样起作用(使用相同的值初始化所有变量)