По-моему, вы с циклами намутили: массив у вас двумерный, но в обоих циклах вы запрашиваете длину только одного из индексов. Зато внутри в условиях подразумеваете использование обоих индексов. Вполне возможно, что ошибку вы не ловите в первом варианте кода из-за того, что используете другой порядок циклов.