やりたいこと「TANGO[n]をTANGO[1]に移動するために、TANGO[1]からTANGO[n-1]を一つずつ後ろにずらす」
(例)abc def ghi jkl だとしたら、abc def ghi をそれぞれ一つずつ後ろにずらして、jklを一番目にする
→ jkl abc def ghi
一つずつというのは結果の話で、abcが1つ後ろ、次にdefが1つ後ろ・・・って処理する順番を指しているのではないです。
ループ「iをn-1から-1ずつ増やして(1ずつ減らして)0になったら終了」
(例)n=4の場合、ループはi=3、2、1、0の順で繰り返し
TANGO[i]ならTANGO[3]、TANGO[2]、TANGO[1]、TANGO[0]と添え字が減っていきますし、
TANGO[n-i]ならTANGO[1]、TANGO[2]、TANGO[3]、TANGO[4]と添え字が増えていきます。
> なのに添字4から0に行ったり
これは、ループ前の「TANGO[n]→TANGO[0]」ですね。
どの選択肢の場合でも、この処理は共通で入ります。