Хорошо, ваша проблема проста, теперь мы можем увидеть весь код. Посмотрите на позицию, она начинается с 0. При первом проходе через l oop он получает приращения до 1. Затем, если оператор проверяет, а 1 действительно меньше 10, он делает приращение -1. Затем на следующем проходе через l oop, который добавляется, снова делая pos 0, а так как 0 меньше 10, он снова меняет приращение. Он делает именно то, что вы сказали.
Попробуйте запустить pos в 10 и посмотреть, что произойдет.