Problemas no For * Urgente * =(

Galera, estou tentando fazer um for dentro do outro, porém o contador nao incremento…oq pode esta acontecendo??

Abraços


	public Cliente alugar(ItemLocacao item)
	 {
	  for (int cont=1;cont<=10;cont=cont+1)
	  {
	   for (Cliente x:itensCliente.keySet())
	   {
	    System.out.println(x.getNome()+" ----- Posicao:"+(cont-1)+"------"+itensCliente.get(x).get(cont-1).getNome());
	    if (itensCliente.get(x).get(cont-1).equals(item))
	    {
	     //if (x.Alugar(item))
	     //{
	      //itensCliente.get(x).remove(cont);
	      //item.alugar();
	     // return x;
	     //}
	    }
	     
	    
	    System.out.println(cont);
	       }
	   }
	   
	   
	 return null;  
	 }

}

O erro esta na linha 20, nao precisa colocar cont=cont+1, porque já está na sintaxe do for.
Acredito que seja isso…

Não é essa linha…ela tava de alegre lá…ja tirei.

Sinceramente achei o código confuso… Mas como dica.

  • Primeiro seria interessante você manter a convensão de identação definido pela sun.
  • Para incrementar uma variavel utilize “cont++” em vez de “cont=cont+1”
  • Para que o valor de cont é definido para 1, e depois você fica diminuindo o mesmo? porque não comece a variavel com 0, já que você so utiliza ela para varrer seu for

E de fato o que acontece? a variavel cont não está mudando de valor?

Att.

Astork

Bom, houve varias modificações no código, para testes…mas vou te falar a ideia:

Percorrer uma lista produto de cada cliente, na posição q é indicada no contador…tipo

Cliente 1, verificar a posição 1
Cliente 2, verificar a posição 1

cont++

Cliente 1, verificar a posição 2
Cliente 2, verificar a posição 2

pq isso?
é um sistema de locadora, e tem uma ordem de locação…eu tenho q verificar quem tem aquele item naquela posição…porem o contador nao aumenta… :frowning:

Concordo em relação as convensões, porém também deveria funcionar.
Eu fiz os testes aqui e funcionaram, sugiro vc ir quebrando o código até saber qual ponto exato está errado, vai comentando o código até funcionar…

[quote=niggazflavors]Bom, houve varias modificações no código, para testes…mas vou te falar a ideia:

Percorrer uma lista produto de cada cliente, na posição q é indicada no contador…tipo

Cliente 1, verificar a posição 1
Cliente 2, verificar a posição 1

cont++

Cliente 1, verificar a posição 2
Cliente 2, verificar a posição 2

pq isso?
é um sistema de locadora, e tem uma ordem de locação…eu tenho q verificar quem tem aquele item naquela posição…porem o contador nao aumenta… :([/quote]

Se for isso que você quer, inverta a ordem dos for’s. Primeiro é o for que itera sobre a lista de cliente, depois (dentro do anterior) o for do contador.

vou testar…ja volto

Então o que acontece é o seguinte:
o For de dentro é executado completo na primeira passada do for de fora. depois o for de fora não é executado novamente.