[RESOLVIDO] Duvida com Logica no for

5 respostas
shenn

Bom Dia pessoal, estou com uma duvida já faz uns dias, mas eu não consigo pensar em uma solução. :frowning:

segue meu codigo:

int acertos = 0;
			int auxiliar = 0;
			
			for (int i = 0; i < 6; i++) {
				if (bean.getNumero1().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero2().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero3().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero4().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero5().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero6().equals(listaBd.get(i))) {
					acertos++;
				}
				
				auxiliar = acertos;
				if (acertos >= auxiliar){
					System.out.println("entrou no if");	
				}

certo, o que este codigo está fazendo? Ele esta comparando dois valores e quando esses valores forem iguais, entra no if… no final de todos os ifs eu irei ter a quantidade de numeros iguais a partir da variavel acertos, ate ai esta tudo perfeito…

porem eu gostaria de saber qual foi o numero mais alto da variavel acertos

tipo:
no indice 0 do for ela terminou valendo 4
no indice 1 do for ela terminou valendo 1
no indice 2 do for ela terminou valendo 5
no indice 3 do for ela terminou valendo 6

e assim por diante… Mas estou com dificuldade de fazer essa logica, alguem pode dar uma dica?

vllw =D

5 Respostas

drsmachado

Vai precisar de uma variável que controle isso, além de verificar, em cada iteração, se o valor da igualdade é maior que o já existente na variável de controle.

R

shenn:
Bom Dia pessoal, estou com uma duvida já faz uns dias, mas eu não consigo pensar em uma solução. :frowning:

segue meu codigo:

int acertos = 0;
			int auxiliar = 0;
			
			for (int i = 0; i < 6; i++) {
				if (bean.getNumero1().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero2().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero3().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero4().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero5().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero6().equals(listaBd.get(i))) {
					acertos++;
				}
				
				auxiliar = acertos;
				if (acertos >= auxiliar){
					System.out.println("entrou no if");	
				}

certo, o que este codigo está fazendo? Ele esta comparando dois valores e quando esses valores forem iguais, entra no if… no final de todos os ifs eu irei ter a quantidade de numeros iguais a partir da variavel acertos, ate ai esta tudo perfeito…

porem eu gostaria de saber qual foi o numero mais alto da variavel acertos

tipo:
no indice 0 do for ela terminou valendo 4
no indice 1 do for ela terminou valendo 1
no indice 2 do for ela terminou valendo 5
no indice 3 do for ela terminou valendo 6

e assim por diante… Mas estou com dificuldade de fazer essa logica, alguem pode dar uma dica?

vllw =D

Bom, desse jeito que você está colocando no if… está incoerente… Pensa comigo:

Abaixo você tem a quantidade de “acertos”… aí você pega e fala assim -> se acertos for Igual ou Maior que auxiliar faça…(“entrou no if”)… “acertos” sempre será igual a auxiliar, pois você está fazendo auxiliar receber acertos em:

auxiliar = acertos;
if (acertos >= auxiliar){
					System.out.println("entrou no if");	
				}
shenn

consegui resolver agora a pouco =D

vllw

int ponteiro = 0;
int acertos = 0;
			
			for (int i = 0; i < 6; i++) {
				if (bean.getNumero1().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero2().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero3().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero4().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero5().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero6().equals(listaBd.get(i))) {
					acertos++;
				}
			}
			if (ponteiro == 0){
				auxiliar = acertos;
			}
			if (acertos >= auxiliar){
				auxiliar = acertos;
				System.out.println("id: " + c.getString(0) + " acertos: " + acertos);
				this.exibirMelhorJogo();
				n1.setText(c.getString(1));
				n2.setText(c.getString(2));
				n3.setText(c.getString(3));
				n4.setText(c.getString(4));
				n5.setText(c.getString(5));
				n6.setText(c.getString(6));
			}
			ponteiro++;
drsmachado

E aqui você tem um erro grotesco

auxiliar = acertos; if (acertos >= auxiliar){ System.out.println("entrou no if"); }
Se você iguala auxiliar a acertos, ele sempre irá entrar no if, mesmo que não tenha entrado em nenhum dos ifs que estão dentro do for.
Aliás, você nem precisa de todos estes ifs
Com isso, você já resolve

for(int i = 0; i< 6; i++){
   if(listaBd.contains(bean.getNumero1()
      || listaBd.contains(bean.getNumero2()
      || listaBd.contains(bean.getNumero3()
      || listaBd.contains(bean.getNumero4()
      || listaBd.contains(bean.getNumero5()
      || listaBd.contains(bean.getNumero6()
       ){
       acertos++;
  }
}
drsmachado
shenn:
consegui resolver agora a pouco =D

vllw

int ponteiro = 0;
int acertos = 0;
			
			for (int i = 0; i < 6; i++) {
				if (bean.getNumero1().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero2().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero3().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero4().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero5().equals(listaBd.get(i))) {
					acertos++;
				}
				if (bean.getNumero6().equals(listaBd.get(i))) {
					acertos++;
				}
			}
			if (ponteiro == 0){
				auxiliar = acertos;
			}
			if (acertos >= auxiliar){
				auxiliar = acertos;
				System.out.println("id: " + c.getString(0) + " acertos: " + acertos);
				this.exibirMelhorJogo();
				n1.setText(c.getString(1));
				n2.setText(c.getString(2));
				n3.setText(c.getString(3));
				n4.setText(c.getString(4));
				n5.setText(c.getString(5));
				n6.setText(c.getString(6));
			}
			ponteiro++;


Isso ainda não está certo.
você instancia ponteiro como 0 e depois o compara com zero e, como ele é zero, você iguala auxiliar a acertos. Aí compara para ver se acertos >= auxiliar. Sempre vai entrar nesse if.

Criado 6 de agosto de 2012
Ultima resposta 6 de ago. de 2012
Respostas 5
Participantes 3