2015-03-31 99 views
-1

當試圖編譯我的文件AverageRainfall.java時,我不斷收到兩個符號不存在的變量的錯誤。我已經包含了受影響的代碼,其中包括兩個已定義的變量和正在接收錯誤的System.out.print命令。編譯for循環時出錯

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 

將首先提意見建議的修改之後,我不再收到「無法找到符號」錯誤,但現在我被告知'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可能尚未初始化

+0

哪一行是第26行? – Qix 2015-03-31 01:29:56

+2

在第二個循環結束時去掉分號。 – 2015-03-31 01:34:24

回答

0

你m的錯誤初始化

int m = m; 

爲m沒有尚未分配的值這應該失敗。 您的意思是int m = y;

+0

我將它更改爲m = 1,因爲for循環從1到12 – LizzySmit 2015-03-31 02:56:03

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

謝謝修復,但現在我得到一個新的錯誤與我的'while'循環有關,它告訴我我的變量可能沒有被初始化。 – LizzySmit 2015-03-31 01:38:42

+0

你可以發佈與該錯誤相關的代碼 – 2015-03-31 01:40:46

+0

變量的數據類型是什麼,你是如何初始化它的,如果它是一個整數,你必須指定一個默認值如0 – 2015-03-31 01:45:36