pessoal, estou desenvolvendo um sistema que cadastra 25 dezenas numa lista
e depois crio 15 dezenas sorteadas(bingo) e quero verificar quantas dezenas acertei das 25 cadastradas.
int acerto;
for(int i=0;i<24;i++){
for(int j=0;j<=14;){
if(listaCadastrada.get(i)==listaSorteada.get(j)){
acerto++;
}else{
j++;
}
}
}
fiz assim, pra mim esta certo mas nao dá
da uma excessao memory heap space
Está dando loop infinito, seu j não está sendo incrementado nunca.
Por favor, se algum tiver uma dica
fazer de outra forma mas que de certo…
fico muito grato
Pode tentar inverter seu for também.
Vai verificar se seus números sorteados estão em seus números registrados.
int acerto;
for(int j=0;j<=14; j++){
for(int i=0;i<24;i++){
if(listaCadastrada.get(j)==listaSorteada.get(i)){
acerto++;
}
}
}
e se nao for igual,
eu tenho que incrementar i++ no ‘else’ nao?
Uai, não precisa o próprio for já faz esse incremento.
Se você for incrementar somente quando não for igual pode acontecer o loop infinito, pois quando o valor for encontrado vai não vai haver incremento e ai irá acontecer o loop…
A ordem dos for ai não inflige no funcionamento. Você pode fazer seu for anterior, so colocar o j++ no for e retira seu else.
vc pode fazer assim
List<Integer> numeros = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
List<Integer> sorteados = Arrays.asList(26,48,8,33,55,60,12,13,16,18,19,20,23,24,25);
int acertos = 0;
for(Integer n : sorteados){
if(numeros.contains(n)){
acertos++;
}
}
System.out.println("Números de acertos: " + acertos);
vlw, vou tentar.
Obrigado