Se você tiver uma matriz numérica em um programa Java e contém um valor duplicado indesejada , pode ser necessário para encontrá-lo . Usando estruturas de loop , o código pode percorrer a sua matriz, verificação de cada valor para ver se ele já ocorreu e deixá-lo saber onde a duplicata é . Ao incorporar um loop dentro de outro , seu código pode verificar cada item contra itens anteriores. Dê-se uma compreensão clara do processo , pensando todo o tempo o que vai acontecer quando o código é executado cada vez que você adicionar uma nova estrutura de controle. Instruções
1
Criar sua matriz numérica. Se você ainda não tem uma matriz número em seu programa, você pode usar o seguinte exemplo :
int [ ] = { myNums 3, 5, 1 , 6, 5 , 8, 7 };
Esta linha declara e instancia um array com valores inteiros do tipo primitivo. Como você pode ver , o valor duplicado é o número cinco. Prepare duas variáveis para armazenar o valor do número duplicado e a posição que fica no dentro da matriz :
int dupNum = -1; int dupPos = -1;
por inicializar -los para um negativo , você será capaz de dizer se o seu processo encontra um valor duplicado na matriz ou não.
2
Crie um loop para percorrer a matriz . Adicione a seguinte estrutura hierárquica loop para seu programa:
for (int i = 1; i < myNums.length ; i + +) { conteúdo //processo aqui }
Este loop irá iterar uma vez para cada elemento em sua matriz numérica. Dentro do loop , você pode implementar o processo de verificação , comparando cada item para os itens anteriores da estrutura. Armazenar o valor atual número em uma variável local dentro de seu loop: int currNum = myNums [i] ;
Este valor representa o inteiro na posição atual sempre que o loop itera
. 3
Crie um segundo loop dentro do primeiro. Adicione o seguinte esboço de loop depois de armazenar o valor atual em sua variável :
for (int j = 0; j < i, j + +) { //verifica valores anteriores }
Dentro deste ciclo , você pode comparar o valor atual para aqueles que aparecem em posições anteriores na matriz. Desta forma, você pode dizer se o valor atual é uma duplicata.
4
Compare o número atual para os valores anteriores . Dentro de seu segundo loop for , adicione a seguinte instrução condicional:
if ( currNum == myNums [j] ) {//o valor é duplicado }
Se este teste retorna um valor verdadeiro , isso significa que o elemento de matriz de corrente é igual ao anterior , com a sua posição indicada pelo segundo contador de ciclo . Dentro da condicional if, instruir o programa o que fazer quando encontra uma duplicata :
dupNum = currNum ; dupPos = i; break;
O código define os valores do número duplicado e a sua posição , de modo que eles estarão acessíveis quando o ciclo termina . No outro ponto existe para continuar com o ciclo nesta fase , então a instrução break impede de iteração mais.
5
sair do primeiro loop. A instrução break só quebra o código para fora do circuito mais próximo. Isto significa que o loop externo continuará mesmo depois de ter encontrado o valor duplicado. Após o colchete de fechamento para o loop dentro, adicione a seguinte instrução condicional:
if ( dupNum > = 0) break;
Se a duplicata não foi encontrado, o loop externo continuará executando . Você pode adicionar a seguinte declaração após o seu teste de loop externo fecha:
System.out.println (" número duplicado :" + dupNum + " , a posição :" + dupPos );
Se o seu código não foi localizado uma duplicata , ambas as variáveis ainda será armazenar valores de uma negativa.