Validação de Matriz - Número já digitado

Bom dia pessoal,

preciso fazer a validação de um número já digitado na matriz, ou seja, se o usuário tentar digitar um número que já consta na matriz, o programa retornará uma mensagem do tipo: “número já digitado, informe outro número”

Meu condigo é esse, refere-se a um quadrado mágico:

int n,i,j;

	System.out.println("Digite o tamanho do quadrado: ");
	n = get.nextInt();
	
	int quadrado[][] = new int[n][n];
	
	System.out.println("Digite os valores do Quadrado: ");
	for (i=0;i<n;i++) {
		for (j=0;j<n;j++) {
			
			do {
				quadrado[i][j] = get.nextInt();
				if (quadrado[i][j] < 1 || quadrado[i][j] > 9)
					System.out.println("número inválido");
			}while (quadrado[i][j] < 1 || quadrado[i][j] > 9);
			
				
		}
	}

Eu coloquei a validação de números menor que 1 e maior que 9, agora preciso da validação de um número ja presente no vetor.

Aguem pode me ajudar???

Muito obrigado.

Você pode criar um método para rodar esse Array para comparar o valor digitado pelo usuário com os já cadastrados e retorna um booleano.

1 curtida

Eu não sei fazer isso , vc pode me mostrar ?

Olá Rafael, antes de armazenar o valor na matriz, verifique se é um número válido e verifique se já não existe na matriz. Somente após as verificações, armazene na matriz.
Fiz um exemplo que pode te ajudar:

        int n, i, j, valor, k, l;
        boolean existe = false;
        System.out.println("Digite o tamanho do quadrado: ");
        n = get.nextInt();

        int quadrado[][] = new int[n][n];

        System.out.println("Digite os valores do Quadrado: "); 
        for (i = 0; i < n; i++) {
            for (j = 0; j < n; j++) {
                do {
                    valor = get.nextInt();
                    if (valor < 1 || valor > 9) {
                        System.out.println("número inválido");
                    }
                } while (valor < 1 || valor > 9);
                //o número é válido

                //percorre a matriz e verifica se o número existe nela
                for (k = 0; k < n; k++) {
                    for (l = 0; l < n; l++) {
                        if (valor == quadrado[k][l]) {
                            existe = true;
                            //encerra o laço da pesquisa
                            l = n;
                            k = n;                            
                        }
                    }
                }
                //se não existir armazena
                if (!existe) {
                    quadrado[i][j] = valor;                    
                    System.out.println("quadrado[" + i + "][" + j + "] = " + quadrado[i][j]);                    
                } else {
                    //se existir muda o valor do boolean existe e decrementa o j
                    existe = false;
                    System.out.println("número já cadastrado!!");                    
                    j--;                    
                }
            }//for j
        }//for i

Quer aprender mais sobre programação? Acesse meu canal SiAbreu Tec