Ir ao conteúdo
  • Cadastre-se

Java Problema com for (logica)


Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

Boa tarde, estou fazendo uma verificação de um array com FOR, o código tem que detectar se dentro do array o valor é '.', se for 2 variáveis recebem a posição(linha, coluna),com o tempo este array vai ser modificado e preciso que o código encontre um lugar 'vazio' porém estão sempre entregando o mesmo valor,

public class Testes {


	public static void main(String[] args) {
		
		
				
		int lin = 0, col = 0;
        int LinCPU = 0;
        int ColCPU = 0;
        final char pt = '.';
		byte [][] m =
			{
				{pt, pt, pt},
				{pt, pt, pt},
				{pt, pt, pt}
			};
		
			
			for (lin = 0; lin < 2; lin++)
			{
				for (col = 0; col < 2; col++)
				{
					
			        if(m[lin][col] == pt) 
			        	LinCPU = lin;
			        	ColCPU = col;
			        	
			        	System.out.println(LinCPU + " " + ColCPU);
						break;
				}
				
			break;
							
			}
			
						
		
		
	}
}

o que há de errado ?

Link para o comentário
Compartilhar em outros sites

  • Solução

Segue um exemplo de como fazer:

package acharespaco;

public class AcharEspaco {
    private static class Coordenada {
        public final int linha;
        public final int coluna;

        public Coordenada(int linha, int coluna) {
            this.linha = linha;
            this.coluna = coluna;
        }
    }

    public static void main(String[] args) {
        final char pt = '.';

        char[][] matriz = new char[][]{
                {pt, pt, pt},
                {pt, pt, pt},
                {pt, pt, pt}
        };

        Coordenada coordenada;

        while ((coordenada = procurar(matriz, pt)) != null) {
            System.out.println("Encontrou [" + coordenada.linha + ", " + coordenada.coluna + "]");
        }

        System.out.println("Acabaram os espaços livres.");
    }

    /**
     * Procura uma ocorrência de flag.
     *
     * @param matriz Onde deve ser procurado.
     * @param flag   O que deve ser procurado.
     *
     * @return Instância de Coordenada contendo a posição de linha e coluna. Se não houver nenhuma ocorrência, é retornado null.
     */
    private static Coordenada procurar(char[][] matriz, char flag) {
        Coordenada coordenada = null;
        boolean encontrou = false;

        for (int i = 0; i < matriz.length && !encontrou; i++) {
            for (int j = 0; j < matriz.length && !encontrou; j++) {
                if (matriz[i][j] == flag) {
                    coordenada = new Coordenada(i, j);
                    encontrou = true;

                    matriz[i][j] = '-';
                }
            }
        }

        return coordenada;
    }
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!