Ну, я не знаю, почему вы использовали два цикла, потому что идея была там.
Удалите второй цикл, установите k
на j + 1
и логика здесь (прокомментировал код, который вам не нужен.
for (int j = 0; j < arr.length; j += 2) {
//for (int k = 1; k < arr.length; k += 2) {
int k = j + 1;
temp = arr[j];
arr[j] = arr[k];
arr[k] = temp;
//System.out.print(arr[k]);
//}
}
System.out.print(Arrays.toString(arr));
Теперь вам нужно предотвратить возникновение исключений из-за неравномерной длины.
Мне нравится просто использовать немного другой цикл:
for (int j = 1; j < arr.length; j += 2) {
int k = j - 1;
...
}
System.out.print(Arrays.toString(arr));
Все, что вам нужно сделать, это проверить, есть ли хотя бы 2 ячейки, что имеет смысл, если вы хотите обратить массив таким образом
if(arr.length < 2)
return;
Тест 1:
{1, 2, 3, 4, 5, 6}
[2, 1, 4, 3, 6, 5]
Тест 2:
{1, 2, 3, 4, 5, 6, 7}
[2, 1, 4, 3, 6, 5, 7]