Вот допустим, есть у нас код.

Код AS3:
switch (dir) {
case TOP:
var i:int = 0
for (var j:int = 0; j < pics[0].length; j++) {
что-то делаем с pics[i][j]
}
break;
case RIGHT:
var j:int = pics[0].length - 1
for (var i:int = 0; i < pics.length; i++) {
что-то делаем с pics[i][j]
}
break;
case BOT:
var i:int = pics.length - 1
for (var j:int = 0; j < pics[0].length; j++) {
что-то делаем с pics[i][j]
}
break;
case LEFT:
var j:int = 0
for (var i:int = 0; i < pics.length; i++) {
что-то делаем с pics[i][j]
}
break;
default:
}
т.е. мы в зависимости от dir по разному проходим по матрице.
Вообще подробности не важны, может мы несколько раз по разному проходимся по матрице, не суть, главное, что подряд идут несколько похожих по смыслу циклов с i и опционально j. В таком случае компилятор сыпет в консоль ворнинги duplicate variable definition. Но щит, Шерлок, это я и сам вижу, но как лучше от них избавляться?
Вариант 1) Забить, но это несолидно, когда проект собирается не молча.
Вариант 2) В начале объявить эти злосчастные i и j и убрать объявления. Но
может это мои тараканы мне это тоже не нравится, ибо это вроде как повторное использование переменной в другом месте, что не есть хорошо.
Есть ли какие-нибудь еще кроме (2) практики исправления таких ситуаций?