Serial buffer array - What's wrong

Ok, then I guess I'm missing the fundamentals of For loops.

No, you are executing the for loop when there are 0, 1, 2, 3, or 4 bytes of serial data to read. If you ever get 5 characters in the buffer, you'll never read again.

You need to turn the less than in the while statement to a greater than or equal. Don't read anything until there are at least 5 bytes to read.