Imprimir um valor que seja diferente dos valores ja inseridos
3 respostas
helder_pestana
Ok, pessoal a minha duvida é a seguinte :
Tenho que inserir vinte numeros atraves de uma caixa de dialogo , mas preciso que estes numeros nao sejam repetidos , o problema é a medida que insiro estes valores eles devem ser comparados para que nao imprimam um numero repetido; tentei o seguinte codigo que nao deu resultado.
for(inty=0;y<20;y++){Strx=JOptionPane.InputDialogBox("Entre com o numero")n=Integer.parseInt(Strx);for(intx=0;x<20;x++){if(V[x]==n){System.out.println("numero repetido")break;}else{V[x]=n;flag=true;break;}}if(flag==true)System.out.println(n);}
Você precisa usar um array pra armazenar os valores? Se não precisar, use um java.util.Set, que é uma coleção que não permite valores duplicados. Exemplo:
Setnumeros=newHashSet();for(inty=0;y<20;y++){Stringstrx=JOptionPane.showInputDialog("Entre com o numero");Integernumero=Integer.valueOf(strx);numeros.add(numero);}
POw tava sem fazer nda e resolvi mastigar o problema pra vc...veja se o aplicativo a seguir ajuda:
importjavax.swing.JOptionPane;publicclassEvitaRepetidos{staticpublicbooleanvalidaNumero(intnumero,int[]array){for(inti=0;i<array.length;i++){if(array[i]==numero)returntrue;}returnfalse;}publicstaticvoidmain(String[]args){inttamanhoArray=Integer.parseInt(JOptionPane.showInputDialog("Digite o tamanho do array:"));int[]array=newint[tamanhoArray];for(inti=0;i<array.length;i++){intnum=Integer.parseInt(JOptionPane.showInputDialog("Digite um número:"));if(!validaNumero(num,array)){array[i]=num;}else{JOptionPane.showMessageDialog(null,"Número Repetido, digite novamente");i--;}}for(inti=0;i<array.length;i++)System.out.print(array[i]+" ");System.exit(0);}}