Need help getting a program to loop

Here is the core of the problem getting the code to loop

  received = millis();
}


void loop()
{
  // how many milliseconds have elapsed since the last message came in
  unsigned long elapsed = millis() - received;
  // assuming MILLIS_PER_LETTER, what letter (index) ofthe message should we be on?
  int index = elapsed / MILLIS_PER_LETTER;
  // if the letter we should technically be on is within the bounds of the message
  if (index < message.length())
  {

Once index exceeds the length of the message the code that outputs each letter is simply not executed. I do not have time to sort it out now but the code basically could do with rewriting to work more sensibly.