2014-10-29 42 views
-1

我不知道爲什麼這不會打印出任何東西對於每一個循環將無法正確打印

for (int number : humidity) 
     { 
      if (sum < 12) 
      { 
      System.out.printf("%6d",humidity[sum]); 
      sum++; 
      } 
     } 

溼度從文件

Scanner inFileHumid = new Scanner(fileNameHumid); 
int [] humidity = new int[length]; 

然後採取設置爲陣列

while (inFileHumid.hasNextInt()) 
     { 
       humidity[n] = inFileHumid.nextInt(); 
       n++; 
     } 

,並從該文件的數字是69 67 66 64 66 69 67 67 70 69 69 70這是我試圖讓那些在我的EA進行打印ch loop

+0

你可以粘貼你的整個班級,它應該打印什麼? – kolonel 2014-10-29 01:09:10

+0

什麼是總和你爲什麼使用總和而不是數字? – kolonel 2014-10-29 01:10:39

+1

'sum'的初始值是多少? – Keugyeol 2014-10-29 01:12:39

回答

2

你迭代在humidity每個number,但你忽略這些值和試驗一些無關sum。我想你想

for (int number : humidity) 
{ 
    System.out.printf("%6d", number); 
} 

或者等效

for (int sum = 0; sum < humidity.length; sum++) 
{ 
    System.out.printf("%6d", humidity[sum]); 
} 
0

我想你只是有一個問題索引到溼度。所以這應該工作。

for (int number : humidity){ 
      if (number < 12) // Look at the value 
      { 
       System.out.printf("%6d", number); // Print what is in the array 
      } 
} 
0

假設總和爲零,在進入循環之前,該代碼工作。

int[] humidity = {1,2,3,4,5,6,7,8,9,0,1,2}; 
    int sum= 0; 
    for (int number : humidity) { 
     if (sum < 12) { 
      System.out.printf("%6d", humidity[sum]); 
      sum++; 
     } 
    } 

生產:

1  2  3  4  5  6  7  8  9  0  1  2 

所以對於代碼失敗總和進入循環之前必須大於或等於12。