Uso de Arrays

1 resposta
U

Da uma olhada neste código:

class Apartamento {
	String cor;
	int totalDePortas;
	Porta[] porta;
	
	void adicionaPorta(Porta p){
		for(int i=0;i<porta.length;i++){
			if(porta[i]==null){
				porta[i]=p;
				
				System.out.println("Porta do(a):"+p.local);
				System.out.println("A porta esta aberta?"+p.aberta);
				break;
			}
		}
	}
	
	void quantasPortasEstaoAbertas(){
		for(Porta x : porta){
			if(x.aberta==true){
				System.out.println();
			}
		}
	}
	
	int totalDePortas(){
		for(int i=0;i<porta.length;i++){
			if(porta[i]==null){
				return ;
			}
		}
		return 0;
		
	}
}

class Porta{
	String local;
	boolean aberta;
}

Já tentei de tudo dentro do meu conhecimento em java e meu código não da certo. O que quero e imprimir quantas portas estão abertas ou seja que se referencião a true e o total de portas que a no apartamento, espero que possam me ajudar. Obrigado.

1 Resposta

A

Olá. Neste seu método quantasPortasEstaoAbertas há duas observações:

1º - se está testando o valor de um boolean, não precisa compará-lo a true. em vez de if(x.aberta==true) pode usar simplesmente if(x.aberta) (acho que enquadram isso como código mais limpo…)

2º - esse seu método realmente não está imprimindo nada. A instrução System.out.println(); não imprime nada. Acho que você deveria pôr um contador aí e dentro do seu for ir incrementando-o se a porta estiver aberta. Fica assim:

void quantasPortasEstaoAbertas(){
      int portasAbertas = 0;
      for(Porta x : porta){
         if(x.aberta==true){
            portasAbertas++;
         }
      }
      System.out.println( portasAbertas + " portas estão abertas.");
   }

Uma idéia parecida pode te resolver também o lance de quantas portas há no apartamento…

Criado 5 de novembro de 2006
Ultima resposta 5 de nov. de 2006
Respostas 1
Participantes 2