Ir ao conteúdo

Java Problema com for (logica)


Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

Postado

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 ?

  • Solução
Postado

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;
    }
}

 

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...