我想执行一个名为AverageRainfall的程序。大部分的输入效果很好(开始时我的while语句很好),但变量monthRain下有多个月,并且monthRain的while语句在各个月份不起作用,只有初始输入命令正在服务没有目的。执行程序时,额外的输入命令会导致逻辑错误java
ETA:过帐整个代码进行测试
import java.util.Scanner; //for Scanner class
public class AverageRainfall
{
public static void main(String[] args)
{
final int NUM_MONTHS = 12; //Months per year
int years; //Number of years
double monthRain; //Rain for a month
double totalRain = 0; //Rainfall accumulator
double average; //Average rainfall
Scanner keyboard = new Scanner(System.in);
{
System.out.print("Enter the number of years: ");
years = keyboard.nextInt();
while (years < 1)
{
System.out.print("Invalid. Enter 1 or greater: ");
years = keyboard.nextInt();
}
}
{
System.out.println("Enter the rainfall, in inches, for each month. ");
monthRain = keyboard.nextDouble();
for(int y = 1; y <= years; y++){
for(int m = 1; m <= NUM_MONTHS; m++){
System.out.print("Year" + y + "month" + m + ": ");
monthRain = keyboard.nextDouble();
}
}
while (monthRain < 0)
{
System.out.print("Invalid. Enter 0 or greater: ");
monthRain = keyboard.nextDouble();
}
}
{
totalRain += monthRain;
average = totalRain/(years * NUM_MONTHS);
System.out.println("\nNumber of months: " + (years * NUM_MONTHS));
System.out.println("Total rainfall: " + totalRain + " inches");
System.out.println("Average monthly rainfall: " + average + " inches");
}
}
}
这是整个代码。
可以发布整个代码,以便我可以测试它吗? – 2015-03-31 05:03:55
是发布完整的代码。很难猜测。但我认为最近发生的事情是totalRain + = monthRain;不在循环中,这就是所有月份都没有考虑到的原因 – Yantraguru 2015-03-31 05:19:45
@Kognizant我会如何将它放在循环中? – LizzySmit 2015-03-31 05:42:16