在java中,如何在相同的for循环中返回和递增
我遇到了这样一个问题:如果我增加for循环,我的程序会在for循环执行后崩溃,但是如果我不增加for循环并使用return语句返回在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
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方法中。