Sim existem vários, você com o tempo e prática vai melhorando seus algorítimos, segue um exemplo abaixo de uma outra maneira com menor código:
`public class Principal {
publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);floatmaior,menor,temp;System.out.print("Digite o 1° número: ");menor=maior=entrada.nextFloat();System.out.print("Digite o 2° número: ");temp=entrada.nextFloat();maior=(maior<temp?temp:maior);menor=(menor>temp?temp:menor);System.out.print("Digite o 3° número: ");temp=entrada.nextFloat();maior=(maior<temp?temp:maior);menor=(menor>temp?temp:menor);System.out.printf("Número maior: %.2f\n",maior);System.out.printf("Número menor: %.2f\n",menor);entrada.close();}
}`
Espero que ajude, abraços…
L
Lucas_Jose
A forma que eu fiz, foi logo depois de ler sobre if else. Mas é interessante essa flexibilidade que você tem na hora de criar seu código…Com o tempo entendo algumas coisas que você fez Narclk. É bom para ir me acostumando.
Valeu, obrigado.
V
von_Tappenburg
Bom, como foi dito anterior pelo Narclk, existem várias formas de resolver esse problema. Isso porque esse problema faz uso da ordenação de valores. Nesse algoritmo que você utilizou, no entanto, isso não foi feito poque você escreveu uma linha de código para cada teste, ou seja, é um jeito simples de resolver, mas só é interessantes para casos onde o número de valores a serem testados seja bem definido, como no seu caso que são somente três números.
Como eu havia dito, a melhor forma de resolver esses problemas que necessitam determinar a ordem dos números (ou mesmo letras) é usando as técnicas ou algoritmos de ordenação. O mais simples deles é o bubble sort, mas também é o mais limitado quanto à performance de máquina. Sugiro que pesquise sobre os métodos* Bubble Sort*,* Selection Sort*, Merge Sort, Quick Sort - só para citar alguns. Abaixo o problema (generalizado) resolvido via Selection Sort:
System.out.print("Informe o tamanho da sequência: ");t=scan.nextInt();numeros=newdouble[t];System.out.print("\n Digite os valores...\n\n");for(inti=0;i<t;i++){System.out.print((i+1)+"\u00BA: ");numeros[i]=scan.nextDouble();}scan.close();menor=numeros[0];maior=numeros[t-1];for(inti=0;i<t;i++){if(numeros[i]<menor)menor=numeros[i];if(numeros[i]>maior)maior=numeros[i];}System.out.print("O maior número informado é "+maior+" e o menor é "+menor);}
}
`
L
Lucas_Jose
Eu tô estudando pelo site Java Progressivo(bem no começo) e não sei se dessa forma ainda vai ser abordado von_Tappenburg, mas já valeu por uma pesquisa no google sobre “Java algoritmos de ordenação”
Pra quem está começando é muito bom conciliar um material de estudo com as dúvidas aqui no forum.
Valeu.
L
LostSoldier
Uma outra forma de se fazer…
importjava.util.Scanner;importjava.util.Locale;importjava.util.List;importjava.util.ArrayList;importjava.util.Collections;publicclassMaiorMenor{publicstaticvoidmain(String[]args){List<Double>lista=newArrayList<Double>();Scannerentrada=newScanner(System.in).useLocale(Locale.US);for(inti=0;i<3;i++){System.out.printf("Digite o %dº número: ",i+1);lista.add(entrada.nextDouble());}entrada.close();System.out.printf("Menor número: %.2f\n",Collections.min(lista));System.out.printf("Maior número: %.2f\n",Collections.max(lista));}}