Duvida em relação a um exercicio de arrays unidimensionais

  1. Crie um método que recebe um array e troca o primeiro elemento com o segundo, o terceiro com o quarto,
    e assim por diante.
  2. Idem ao ex. anterior, trocando o primeiro elemento com o último, o segundo com o penúltimo, e assim por
    diante.

fiz mais ou menos assim mas nao esta executando

public void troca3(int[] x) { for(int i=0;i<x.length;i++) for(int j=x.length;j<x.length;j--) x[i] = x[j]; }


public static int[] exercicio12(int[] array) {
		for (int i = 0; i < array.length; i=i+2) {
			int temp = array[i];
			array[i] = array[i+1];
			array[i+1] = temp;
		}
		return array;
	}
	
	public static int[] exercicio13(int[] array) {
		for (int i = 0; i < array.length / 2; i++) {
			int temp = array[i];
			array[i] = array[array.length - i - 1];
			array[array.length - i - 1] = temp;
		}
		return array;
	}

Funciona caso o tamanho do array seja par.

Fica como exercício fazer funcionar também para array de tamanho ímpar.

obrigado pela resposta, mas queria entender aonde estou errando

Imagine que você tenha o seguinte array na entrada
x = {1,2,3,4,5,6};

O tamanho de seu array, x.length é 6 e esse é o valor inicial que você está passando para j.

Só que o último índice do seu array não é 6, é 5, ou seja, x.length-1.

No segundo loop, o j é decrescente, logo não a condição de parada não deve ser j<x.length e sim j > 0;

Além disso, quando você faz x[i] = x[j], você está jogando o valor em x[i] fora. Na primeira iteração do seu loop (corrigindo os erros anteriores) você teria o seguinte vetor {6,2,3,4,5,6} e com isso não teria como jogar o valor 1 na última posição.

Além do mais, mesmo que isso seja corrigido, quando a iteração do seu programa chegasse na metade, ele desfazeria tudo o que fez anteriormente.

Pelo que vi é porque teu laço deve ir até metade do array na ida e também até o meio na volta, pois senão tu vai voltar ao array original e também precisa de uma variável temporária pra não perder o valor de uma das posições, como estava acontecendo no teu primeiro exemplo…

Muito obrigado pelas respostas!