Не вижу почему не рационально? Происходит увеличение i, проще сделать это не в теле цикла. Я не набираю количества сообщений. А по программированию экзамен автоматом две недели уже как получил, так что наверно не совсем ничего не понимаю в нем.