编译for循环时出错

时间:2015-03-31 01:23:30

标签: java for-loop syntax-error undefined-symbol

当我尝试编译我的文件AverageRainfall.java时,我不断收到两个符号不存在的变量错误。我已经包含了受影响的代码,其中包括两个已定义的变量和收到错误的System.out.print命令。

System.out.println("Enter the rainfall, in inches, for each month. ");          
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();

我错误地认为我始终为'y''m'都出现此错误:

AverageRainfall.java:26: error: cannot find symbol

添加第一个评论者建议的更改后,我不再收到“无法找到符号”的字样。错误,但现在我被告知&#39; y&#39;和&#39; m&#39;可能没有初始化,它给我一个错误的直接跟随它的while循环。受影响的代码:

    {
   System.out.println("Enter the rainfall, in inches, for each month. ");
      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();
      }
}

AverageRainfall.java:32:错误:变量monthRain可能尚未初始化

2 个答案:

答案 0 :(得分:0)

尝试添加括号。在内循环

之后也删除那个分号

如果你在循环之外使用那两个变量,那么你必须在循环之外初始化该变量。

System.out.println("Enter the rainfall, in inches, for each month. ");          
for(int y = 1; y <= years; y++){

  for(int m = m; m <= NUM_MONTHS; m++){     
     System.out.print("Year" + y + "month" + m + ": ");    
  }    
  monthRain = keyboard.nextDouble();
}

答案 1 :(得分:0)

你的m被错误地初始化

int m = m;

这应该失败,因为m还没有分配值。 您的意思是int m = y;吗?