for значит "для всех элементов в таком-то промежутке".
В данном случае for более уместен - мы итерируемся по массиву элементов, выполняя определённые операции для каждого из них, длина цикла пропорциональна размеру массива.
Проходя мимо прислонённых к стене граблей, украинец всегда морщится.
Ваш код когда-нибудь проходил коллективное ревю?
Очень жаль, что у вас неверное представление о чистоте в коде.
Для while придется завести внешнюю по отношению к циклу переменную. Зачем она нужна?
while( true ) {
...
}
А собственно MAC вполне достаточно.
Спорить можете хоть до посинения ;-)