繁体   English   中英

我如何在java中的同一个for循环中返回和递增

[英]how can i return and increment in the same for-loop in java

我遇到了这样一个问题,如果我增加 for 循环,我的程序会在 for 循环执行后崩溃,但如果我不增加 for 循环并使用 return 语句返回projectedSales我的程序将继续运行.

但是,如果我不加那么projectedSales只输出过去数projectedSales1不将其加入projectedSales

所以我的问题是,我如何增加 for 循环,以便projectedSales = projectedSales + projectedSales1继续收集数据并在最后返回projectedSales

    Scanner input = new Scanner(System.in);
    double projectedRevenue2025 = 0;
    double projectedSales1 = 0;
    double projectedSales = 0;
    double baseSales;
    double growthRate;
    double numberOfYears;
    int [] productPrice = {1825, 670, 880, 1910, 485};

    DecimalFormat df = new DecimalFormat("#");

    for (double i = 0; i <= 4;) {
        System.out.println("What is the base sale?");
        baseSales = input.nextDouble();

        System.out.println("What is the growth rate?");
        growthRate = input.nextDouble();

        System.out.println("What is the expected number of years?");
        numberOfYears = input.nextDouble();

        //calculates the projected sales of the upcoming years
        projectedSales1 = baseSales * (Math.pow((1 + (growthRate / 100)), numberOfYears));

        System.out.println("The projected sale is: " + df.format(projectedSales1));
        //this should store data from projectedSales1 into projectedSales and add it to the previous data
        projectedSales = projectedSales + projectedSales1;

        projectedRevenue2025 = (projectedSales1 * productPrice[(int) i]) + projectedRevenue2025;
        System.out.println("The total projected revenue is: $" + df.format(projectedRevenue2025)); //prints total projected revenue
        return projectedSales;
    } //close for-loop      

    input.close();

    return projectedSales;
} //closes projSales

附注。 input.close()后面的return语句是将projectedSales返回给main方法

编辑:我应该对这个程序进行硬编码。 我的问题是循环开始时的输入语句。 谢谢大家,我真的很感谢你们花时间提供帮助。

我建议您在您的情况下使用这样的 for 循环:

for (int i = 0; i < 5; i++) {
    // Do your input and previous calculations
    projectedRevenue2025 = (projectedSales1 * productPrice[i]) + projectedRevenue2025;
}

我还建议您避免将变量命名为var, var1, var2, var2025

尝试添加 i++ 代码是这样的

for (double i = 0; i <= 4; i++) {
//code goes here
}

如果您取出循环中的 return 语句并增加 for 循环,那么它应该每次都收集数据,然后在最后返回所有数据的总和

Scanner input = new Scanner(System.in);
double projectedRevenue2025 = 0;
double projectedSales1 = 0;
double projectedSales = 0;
double baseSales;
double growthRate;
double numberOfYears;
int [] productPrice = {1825, 670, 880, 1910, 485};

DecimalFormat df = new DecimalFormat("#");

for (double i = 0; i <= 4; i++) {
    System.out.println("What is the base sale?");
    baseSales = input.nextDouble();

    System.out.println("What is the growth rate?");
    growthRate = input.nextDouble();

    System.out.println("What is the expected number of years?");
    numberOfYears = input.nextDouble();

    //calculates the projected sales of the upcoming years
    projectedSales1 = baseSales * (Math.pow((1 + (growthRate / 100)), numberOfYears));

    System.out.println("The projected sale is: " + df.format(projectedSales1));
    //this should store data from projectedSales1 into projectedSales and add it to the previous data
    projectedSales = projectedSales + projectedSales1;

    projectedRevenue2025 = (projectedSales1 * productPrice[(int) i]) + projectedRevenue2025;
    System.out.println("The total projected revenue is: $" + df.format(projectedRevenue2025)); //prints total projected revenue
} //close for-loop      

input.close();

return projectedSales;
} //closes projSales

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM