[英]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.