在java中,如何在相同的for循环中返回和递增

在java中,如何在相同的for循环中返回和递增,java,for-loop,return,increment,Java,For Loop,Return,Increment,我遇到了这样一个问题:如果我增加for循环,我的程序会在for循环执行后崩溃,但是如果我不增加for循环并使用return语句返回projectedSales我的程序会继续运行 但是,如果我不增加,则projectedSales只输出projectedSales 1的最后一个数字,而不将其添加到projectedSales 因此,我这里的问题是,如何增加for循环,以便projectedSales=projectedSales+projectedSales 1继续收集数据并在最后返回projec

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

但是,如果我不增加,则
projectedSales
只输出
projectedSales 1
的最后一个数字,而不将其添加到
projectedSales

因此,我这里的问题是,如何增加for循环,以便
projectedSales=projectedSales+projectedSales 1
继续收集数据并在最后返回
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
扫描仪输入=新扫描仪(System.in);
双投影均衡2025=0;
双项目销售1=0;
双项目销售额=0;
双基销售;
双生长型;
两年;
int[]productPrice={18256708801910485};
DecimalFormat df=新的DecimalFormat(“#”);

对于(double i=0;i尝试添加i++代码,如下所示

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

for(double i=0;i如果在循环中取出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
扫描仪输入=新扫描仪(System.in);
双投影均衡2025=0;
双项目销售1=0;
双项目销售额=0;
双基销售;
双生长型;
两年;
int[]productPrice={18256708801910485};
DecimalFormat df=新的DecimalFormat(“#”);

对于(双i=0;i我建议您在您的案例中使用如下for循环:

for (int i = 0; i < 5; i++) {
    // Do your input and previous calculations
    projectedRevenue2025 = (projectedSales1 * productPrice[i]) + projectedRevenue2025;
}
for(int i=0;i<5;i++){
//做你的输入和以前的计算
ProjectedEvenue2025=(projectedSales1*产品价格[i])+ProjectedEvenue2025;
}

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

当程序崩溃时会出现什么样的错误?顺便说一下,您不应该使用
double
变量作为循环计数器。在这种情况下,我还建议您避免命名变量,如
var1,var2,var2025…
我认为这段代码for循环只运行1次,然后返回到主循环method@Steyrixjava.util.NoSuchElementException是我收到的错误消息。@yshaikh20x您尝试过我在回答中提出的解决方案了吗?有效吗?@Steyrix是的,我尝试过,但没有返回语句,它会给我错误消息:线程“main”中出现异常java.util.Scanner.throwFor(未知源代码)处java.util.Scanner.nextDouble(未知源代码)处java.util.Scanner.nextDouble(未知源代码)处project4.project4.projSales(project4.java:61)处project4.project4.main(project4.java:36),其中第61行是
baseSales=input.nextDouble()第36行是
productSales2025=projSales();
它位于main方法中当我这样做时,我会得到错误消息java.util.NoSuchElementException。但是如果我在for循环的任何地方排除i++并使用return语句,那么我的程序将继续使用代码,而不会增加
i
。线程中的异常java.util.Scanner.throwFor(未知源代码)java.util.Scanner.nextDouble(未知源代码)java.util.Scanner.nextDouble(未知源代码)project4.project4.projSales(project4.java:61)project4.project4.main(project4.java:36)中的“main”java.util.Scanner.NoSuchElementException,其中第61行是
baseSales=input.nextDouble()第36行是productSales2025=projSales()
位于main方法中。我对此感到厌倦。我总是收到错误消息java.util.NoSuchElementException@yshaikh20x是否可以粘贴完整的错误消息?运行代码本身不会提供任何错误这不是全部代码,只是我遇到问题的部分。线程“main”中的异常“java.util.Scanner.throwFor(未知源)处java.util.Scanner.next(未知源)处java.util.Scanner.nextDouble(未知源)处project4.project4.projSales(project4.java:61)处project4.project4.main(project4.java:36)处的java.util.NoSuchElementException(未知源)这是整个错误消息。第61行是
baseSales=input.nextDouble();
,第36行是
productsale2025=projSales();
,位于main方法中。