为了账号安全,请及时绑定邮箱和手机立即绑定

使用方法调用任意答案

使用方法调用任意答案

动漫人物 2021-12-10 17:02:21
我有这个代码。正在调用 askToContinue() 方法来询问用户是否愿意继续,但我的问题是它只是忽略了选择并无论我输入什么都再次启动程序。我在代码中缺少什么导致它忽略我的选择?public class FutureValueApp {  public static void main(String[] args) {    System.out.println("Welcome to the Future Value Calculator\n");    Scanner sc = new Scanner(System.in);    String choice = "y";    while (choice.equalsIgnoreCase("y")) {        // get the input from the user        System.out.println("DATA ENTRY");        double monthlyInvestment = getDoubleWithinRange(sc,                "Enter monthly investment: ", 0, 1000);        double interestRate = getDoubleWithinRange(sc,                "Enter yearly interest rate: ", 0, 30);        int years = getIntWithinRange(sc,                "Enter number of years: ", 0, 100);        System.out.println();        // calculate the future value        double monthlyInterestRate = interestRate / 12 / 100;        int months = years * 12;        double futureValue = calculateFutureValue(                monthlyInvestment, monthlyInterestRate, months);        // print the results        System.out.println("FORMATTED RESULTS");        printFormattedResults(monthlyInvestment,                 interestRate, years, futureValue);        System.out.println();        askToContinue(sc);    }}private static void printFormattedResults(double monthlyInvestment,         double interestRate, int years, double futureValue){    // get the currency and percent formatters    NumberFormat c = NumberFormat.getCurrencyInstance();    NumberFormat p = NumberFormat.getPercentInstance();    p.setMinimumFractionDigits(1);    // format the result as a single string    String results      = "Monthly investment:   " + c.format(monthlyInvestment) + "\n"      + "Yearly interest rate: " + p.format(interestRate / 100) + "\n"      + "Number of years:      " + years + "\n"      + "Future value:         " + c.format(futureValue) + "\n";        System.out.println(results);  }
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

你在正确的轨道上。改变这个

askToContinue(sc);

choice = askToContinue(sc);

因为您需要返回的值分配给askToContinue名为choice.


查看完整回答
反对 回复 2021-12-10
?
森栏

TA贡献1810条经验 获得超5个赞

您没有将 askToContinue 的结果分配给在循环中检查的选择变量。可能混淆的是 askToContinue 方法中的选择变量。请注意,这是一个不同的变量,不会影响在 while 语句中检查的选择变量。


查看完整回答
反对 回复 2021-12-10
?
aluckdog

TA贡献1847条经验 获得超7个赞

根据 John Camerin 的回答,要assigning在您的代码中跳过 double ,您可以通过在您的类中定义您的choice变量作为全局static变量:


public class FutureValueApp {


public static String choice;


}

或者将其作为方法中的第二个参数发送:


askToContinue(sc,choice);


查看完整回答
反对 回复 2021-12-10
  • 3 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信