Estou com duvida se meu algoritmo esta certo ou não, dentro de uma função. Desde já agradeço o apoio.
Ordenar em ordem crescente três números dados pelo usuário.
static int ordemCrescente(int nu1,int nu2,int nu3, Scanner scan) {
int aux = 0;
double[] vetor = new double[3];
for(int a = 0; a < vetor.length; a++) {
System.out.println("Digite o valor "+a+" da lista:");
vetor[a] = scan.nextInt();
if(vetor[0] > vetor[1]) {
aux = (int) vetor[1];
vetor[0] = vetor[1];
vetor[1] = aux;
}
}
return vetor;
}
Cara, seu código tem alguns problemas. Na verdade nem será compilado.
Começando pelo retorno do método, que é a array double vetor. Isso é um erro porque o método foi especificado para retornar um valor int, não um array e nem double. Na verdade, esse método nem precisa retornar nada, você poderia substituir isso por um : System.out.println(Numeros na ordem crescente aqui);
Além disso, o seu laço for está incorreto, pois nessa parte:
if(vetor[0] > vetor[1]) você pede um valor que ainda não existe: o vetor[1], que o usuário ainda nem digitou.
Aqui está um código que faz o que você quer com comentários para que você entenda.
public static void recebendoEOrdenando(){
Scanner sc = new Scanner(System.in);
//Aqui eu crio uma list int e peço para o usuário digitar 3 valores int
List<Integer> numeros = new ArrayList<Integer>();
System.out.println("Digite 3 números.");
for (int a = 0 ; a < 3 ; a++){
//Se o usuário digitar algum valor que não seja uma int
//nada será adicionado a lista numeros
try {
numeros.add(Integer.parseInt(sc.nextLine()));
System.out.print("novamente");
} catch (NumberFormatException nfe) {
System.out.print("Try again: ");
}
}
//A API Collections tem um método que organiza as listas da maneira que você quiser.
//Listas de Inteiros são organizados de forma crescento por padrão.
Collections.sort(numeros);
//Aqui checa se a lista está vazia
if(numeros.isEmpty()) {
System.out.println("Nenhum dado coletado");
}
else {
System.out.println(numeros);
}
}
Cara obrigado pela dica, estou iniciando em java, e preciso montar esse algoritmo puro sem ser com API. Eu não cheguei nessa parte onde tem Integer. Mesmo assim obrigado pela ajuda.