Fiz o seguinte programa que deveria ler uma sucessao de numero e fazer o seu somatorio. Se o mesmo numero fosse repetido 2 vezes seguidas, deveria pedir outro e rejeitar aquele. mas não consigo faze-lo rejeitar numeros iguais.
publicstaticvoidmain(String[]args){System.out.println("Insira um numero: ");floatnumero=newScanner(System.in).nextFloat();doublesoma=0;doubleteste=0;intcont=0;do{soma=soma+numero;cont++;teste=soma-numero;if(teste==soma){cont--;soma=soma-numero;System.out.println("Inseriu o mesmo numero duas vezes! \n Cloque outro numero: ");numero=newScanner(System.in).nextFloat();cont++;soma=soma+numero;}System.out.println("Insira um numero: ");numero=newScanner(System.in).nextFloat();}while(numero!=0);System.out.println("A soma dos numero introduzidos foi: "+soma);System.out.println("Foram introduzidos: "+cont);}
bom… pra vc comparar os numeros vc tera q ter esses em uma lista(vetor), assim vc podera manipula-lo.
meu racicionio, talvez outra pessoa consiga diferente:
você tem que fazer algumas modificações, primeiro, se você usa o do while, deve tirar a leitura antes de entrar nesse laço de repetição, você coloca variáveis que nem usa depois, além de fazer soma várias vezes, eu modifiquei seu código que funcionou e usando menos linhas.
publicstaticvoidmain(String[]args){floatsoma=0;intcont=0;floatnumero,numeroAnterior;numeroAnterior=0;do{System.out.println("Insira um numero: ");numero=newScanner(System.in).nextFloat();if(numero==numeroAnterior&&cont!=0){cont--;System.out.println("Inseriu o mesmo numero duas vezes! \n Cloque outro numero: ");numero=newScanner(System.in).nextFloat();cont++;}numeroAnterior=numero;soma=soma+numero;cont++;}while(numero!=0);System.out.println("A soma dos numero introduzidos foi: "+soma);System.out.println("Foram introduzidos: "+cont);}
primeira coisa que fiz foi instanciar as variáveis que iria usar, depois como o do…while sempre executa a primeira vez você não precisa colocar nada antes, então nesse laço de repetição eu peço para o usuário digitar um número, então eu comparo se o número é igual ao anterior, e como o número anterior começa com o valor, pois para comparar ele tem que ter valor para não retornar null, então eu também comparo se é não é o primeiro número, se entrar nessa condição eu só peço para o usuário adicionar um outro número, se no exercício tiver que garantir que esse número não seja igual ao anterior é só trocar o if pelo while, e por último eu faço a soma e coloco o número anterior como o último digitado.
vagner_Portela1 like
[Bonsestudos!](https://www.devmedia.com.br/java-collections-set-list-e-iterator/29637)importjava.util.List;importjava.util.Map;importjava.util.Set;publicclassFoo{List<Integer>listList;Set<Integer>listSet;Map<Integer,Double>listMap;/* Se você aprender a trabalhar com essas três *interfaces vai economizar bastante tempo em seus futuros códigos. **/}