Вложенный цикл не работает так, как вы его использовали в этом случае.
Если бы мы попытались пошагово понять, что происходит внутри этих циклов:
for (int i = 2; i >= 0; i--) {
for (int j = 0; j <= 2; j++) {
FinalOrder[j] = FirstOrder[i];
}
}
Тогда выполняемые операции будут выглядеть так:
FinalOrder[0] = FirstOrder[2]
FinalOrder[1] = FirstOrder[2]
FinalOrder[2] = FirstOrder[2]
FinalOrder[0] = FirstOrder[1]
FinalOrder[1] = FirstOrder[1]
FinalOrder[2] = FirstOrder[1]
FinalOrder[0] = FirstOrder[0]
FinalOrder[1] = FirstOrder[0]
FinalOrder[2] = FirstOrder[0]
В случае таких операций ваш вывод будет: "The The The"
, поскольку первый элемент массива FirstOrder
назначен всем индексамиз массива FinalOrder
как последние 3 операции.
Таким образом, вы не можете использовать подобные циклы для достижения того, чего хотите достичь. Для этого я бы предпочел сделать что-то вроде:
for (int i = 2; i >= 0; i--) {
FinalOrder[2 - i] = FirstOrder[i];
}
Кроме того, вам не нужно заполнять массив FinalOrder
элементами. Вы можете просто создать пустой массив размером 3, например:
String[] FinalOrder = new String[3];