Что вы понимаете под "создавать переменные"? Если вы имеете в виду объявление переменных, то это не просто нормальное явление, а рекомендация - если переменная нужна вам только в цикле (а за пределами цикла её видно не будет, т.к. у цикла будет свой scope), то намного лучше, если вы в цикле её и объявите.
Правило очень простое - держите объявление переменных поближе к месту их использования, а если точнее - то держите переменные в самом вложенном скоупе, насколько это возможно согласно местам их использования.