对于每个循环将无法正确打印

时间:2014-10-29 01:07:00

标签: java loops foreach printf

我不确定为什么这不打印任何东西

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这些是我试图在每个循环中打印的那些

3 个答案:

答案 0 :(得分:2)

您正在迭代number中的每个humidity,但是您会忽略这些值并测试一些不相关的sum。我想你想要

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

等效

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

答案 1 :(得分:0)

我认为你只是在湿度指数方面存在问题。所以这应该工作。

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

答案 2 :(得分:0)

假设在输入循环之前sum为零,则该代码可以正常工作。

    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

因此,对于失败的代码,在输入循环之前,sum必须大于或等于12。