在 for 循环中编译时出错

Error while compiling in for loop

尝试编译我的文件 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

添加第一个评论者建议的更改后,我不再收到 'cannot find symbol' 错误,但现在我被告知 'y' 和 'm' 可能尚未初始化,并且它直接跟随它的 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 可能尚未初始化

尝试添加括号。也删除内循环后的那个分号

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

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();
}

你的m初始化错误

int m = m;

这应该会失败,因为 m 还没有赋值。 您是说 int m = y; 吗?