Java

Min ajudem nessa questao. Crie um progama a solicite 10 numeros inteiros de um usuario sendo que esse numero nao possa se repetir.

Qual a sua dificuldade?

Sabe criar uma classe? Sabe rodar um programa feito em Java? Sabe ler da input do usuário?

Isso eu sei. Mais nao sei como fazer.
Pensei assim…
Oi

s[]=new Oi[10];
int c=0;
for(int i=0;i<10;i++){
 s[i]=new Oi();
 System.out.println("Codigo :");
 s[i].setCod(input.next());
 if(c!=0){
   for(int j=0;j<c;j++){
         if(s[i].getCod().equals(s[j].getCod())){
            System.out.println("Digite outro codigo");
            s[i].setCod(input.next());
            }
            
     }
   }
 }
  c++;
} 

Mais isso não funciona porque quando eu digito algum código já usado diz q foi usado mais se eu colocar de novo ai ele ja aceita

Eu até porque isso acontece mais nao sei resolver.

Você precisa verificar se já digitou o número informado.

import java.io.PrintStream;
import java.util.Scanner;

public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    private final Scanner entrada = new Scanner(System.in);
    private final PrintStream saida = System.out;

    public void executar() {
        int[] numeros = new int[10];
        int posicao = 0;
        while (!preencheu(numeros)) {
            saida.print("Digite um numero: ");
            int numero = Integer.parseInt(entrada.nextLine());
            if (numeroExiste(numero, numeros)) {
                saida.println("Numero repetido!");
            } else {
                numeros[posicao] = numero;
                posicao++;
            }
        }
        saida.print("numeros cadastrados:");
        for (int n : numeros) {
            saida.print(" " + n);
        }
    }

    // verifica se lá preencheu o array de números
    private boolean preencheu(int[] numeros) {
        for (int i = 0; i < numeros.length; i++) {
            if (numeros[i] == 0) {
                return false;
            }
        }
        return true;
    }

    // verifica se o número informado já existe no array de números
    private boolean numeroExiste(int numero, int[] numeros) {
        for (int i = 0; i < numeros.length; i++) {
            if (numeros[i] == numero) {
                return true;
            }
        }
        return false;
    }
}

Certo. Mais no que eu tinha feito eu consigo verificar, só consigo ficar no loop enquanto ele ficar digitando um numero ja usado. Maia tem como fazer esae seu cpdigo de uma maneira mais simples ou só da certo assim ?

Fiz da forma que achei mais simples.
Vai dá criatividade de cada um.

1 curtida

Eu entedie o codigo agr consigo fazer do jeito que eu queria… Obrigado