簡體   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