importjava.util.*;classTesteRandArray{publicstaticvoidmain(Stringargs[]){Scannerscn=newScanner(System.in);intrand=(int)(Math.random()*6);intnum,numAcertos=0;int[]array1={rand,rand-1,rand-2};System.out.println("O número excolhido era: "+rand);// esta linha coloquei somente para ver se ele achava o numero randômico.System.out.println("A segunda posição do array é: "+array1[2]);// esta linha para ver se a 2º posição do array corresponderia a rand-2 estas são duas linhas //de testeSystem.out.println("Digite o numero para teste.");for(intx=0;x<4;x++){num=scn.nextInt();for(inti=0;i<3;++i){if(array1[i]==num){System.out.println("Voce acertou!");numAcertos+=1;break;}else{System.out.println("Você errou");break;}}if(numAcertos==3){System.out.println("Voce acertou os três!");break;}}System.out.println("JOGO TERMINADO");}}
o problema aqui é dentro do loop, ele não leva em consideração a 2º e 3º posição do array… se ele escolhe 4 eu coloco 4 ele informa que eu acertei… mas se eu coloco 3 ou 2 ele informa que está errado! :roll:
Com ++i ao inves de i++ ele nao esta so verificando 2 posicoes do array?
evertonsilvagomesjav
magocebolinha:
Dêem uma olhada neste código.
importjava.util.*;classTesteRandArray{publicstaticvoidmain(Stringargs[]){Scannerscn=newScanner(System.in);intrand=(int)(Math.random()*6);intnum,numAcertos=0;int[]array1={rand,rand-1,rand-2};System.out.println("O número excolhido era: "+rand);// esta linha coloquei somente para ver se ele achava o numero randômico.System.out.println("A segunda posição do array é: "+array1[2]);// esta linha para ver se a 2º posição do array corresponderia a rand-2 estas são duas linhas //de testeSystem.out.println("Digite o numero para teste.");for(intx=0;x<4;x++){num=scn.nextInt();for(inti=0;i<3;++i){if(array1[i]==num){System.out.println("Voce acertou!");numAcertos+=1;break;}else{System.out.println("Você errou");break;}}if(numAcertos==3){System.out.println("Voce acertou os três!");break;}}System.out.println("JOGO TERMINADO");}}
o problema aqui é dentro do loop, ele não leva em consideração a 2º e 3º posição do array... se ele escolhe 4 eu coloco 4 ele informa que eu acertei... mas se eu coloco 3 ou 2 ele informa que está errado! :roll:
Vamos por parte essa linha do seu codigo vc nao verifica a segunda posição e sim a terceira (0,1,2):
System.out.println("A segunda posição do array é: "+array1[2]);//estalinhaparaversea2ºposiçãodoarraycorresponderiaarand-2estassãoduaslinhas//deteste
E so vc tirar o else daquele if do vc acertou que vai ficar certo e sua pergunta tem que estar dentro do for.
for(intx=0;x<4;x++){System.out.println("Digite o numero para teste.");num=scn.nextInt();for(inti=0;i<3;++i){System.out.println(i);if(array1[i]==num){System.out.println("Voce acertou!");numAcertos+=1;break;}}if(numAcertos==3){System.out.println("Voce acertou os três!");break;}}System.out.println("JOGO TERMINADO");
marcelo.bellissimo
Voce tá dando um break nos dois casos do IF, a variável 'i' nunca vai ser incrementada... isso se chama Dead Code... reveja a lógica desse IF ai...