Como comparar dois numeros e descobrir qual o maior java

Posts

Explique o problema em si. � pra identificar o maior n�mero em um vetor? Entre dois n�meros? Ou seja, qual � o problema?

Ler 3 ou mais numeros e informar quem � o maior...depois tento desenrolar o resto. obrigada.

Nesse caso, sendo a quantidade de n�meros fixa e baixa, compensa mais utilizar alguns IFs (n�o ser�o muitos). Se forem mais n�meros, principalmente se for uma quantidade indefinida, a� seria mais interessante usar um array.

Segue o c�digo que captura o maior n�mero digitado:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class MaiorNumero { /** * @param args * @throws IOException * @throws NumberFormatException */ public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); List<Integer> numeros = new ArrayList<Integer>(); int n = -1; do{ System.out.print("Digite o n�mero (-1 para mostrar o maior n�mero): "); n = Integer.parseInt(rd.readLine()); if (n == -1){ System.out.println("Maior numero �: "+retornaMaiorValor(numeros)); }else{ numeros.add(n); } }while(n != -1); } public static int retornaMaiorValor(List<Integer> numeros){ int aux = 0; for (int i = 0; i < numeros.size(); i ++){ if (numeros.get(i) > aux){ aux = numeros.get(i); } } return aux; } }

Funcionou legal...apartir dai a logica � a mesma para mostrar tambem o menor numero digitado?

Sim, o �nico local que voc� vai mudar � aqui:

if (numeros.get(i) < aux){ aux = numeros.get(i); }

Colocando o sinal de "<" (menor).

pronto, � s� renomear a variavel? encontrei um exemplo, me diz o que acha dele:

if (numero1 > numero2 && numero1 > numero3 ||numero1 > numero3 && numero1 > numero2 ){ System.out.print("o primeiro numero: " + numero1 +" � o numero maior dos 3\n"); }

se fosse utilizar seria com varios if�s.

pronto, � s� renomear a variavel? encontrei um exemplo, me diz o que acha dele:

if (numero1 > numero2 && numero1 > numero3 ||numero1 > numero3 && numero1 > numero2 ){ System.out.print("o primeiro numero: " + numero1 +" � o numero maior dos 3\n"); }

se fosse utilizar seria com varios if�s.

Este � exemplo � limitado. Se voc� tiver 100 valores ? Vai fazer 100 ifs ?

o que ti passei serve para 2 valores ou 1 milh�o de valores.

Pensando bem � isso mesmo, mas se for um exemplo simples, com poucos numeros. a melhor op��o � o if que citou?

Continuo dizendo que n�o. Sempre trabalhe em solu��es gen�ricas, a forma que voc� apresentou n�o � otimizada de tiver mais que 5 valores, se for apenas 2 ou 3 ent�o voc� pode usar sua solu��o.

As vezes me confundo com essa forma otimizada, sempre o codigo mais "curto" � melhor, tem como saber se a otimiza��o � valida atraves do debbug?

As vezes me confundo com essa forma otimizada, sempre o codigo mais "curto" � melhor, tem como saber se a otimiza��o � valida atraves do debbug?

"Sempre o c�digo mais curto � melhor". Essa afirma��o n�o confere. C�digo curto n�o � sin�nimo de otimiza��o e nunca ser�, prova disso � que algoritmos de ordena��es mais complexos como o HEAP SORT s�o muito melhores que um INSERTION SORT que � bem mais simples e "curto". Voc� sabe se seu algoritmo � otimizado (melhor que um outro ou executa em tempo h�bil) atrav�s do c�lculo de complexidade do algoritmo, estude o pior caso, melhor caso e caso m�dio do seu algoritmo e categorize o desempenho como logaritm�ntico, exponencial e etc.

Estude isso: http://pt.wikipedia.org/wiki/Complexidade_computacional

Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica.

Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica.

UP!!! perguntinha...

Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica.

Voc� tem que fazer testes de performance, medindo o tempo de execu��o dos algoritmos. Levando em considera��o que existem varia��es: Melhor Caso, Pior Caso e Caso M�dio.

Em Java , valores inteiros podem ser armazenados e representado em duas maneiras . Você pode armazenar números inteiros como tipo primitivo " ints ", em que apenas Java armazena o valor numérico. Alternativamente, você pode usar objetos de "Integer " , que armazenam o valor numérico usando uma referência de objeto Java. Independentemente do tipo de número inteiro seu programa usa , você pode comparar valores inteiros facilmente usando algumas linhas de código. Um teste condicional é a maneira mais comum para comparar números inteiros em Java, o que lhe permite adaptar o desempenho do seu programa para os resultados de tais comparações. Instruções
1

Criar dois " inteiros " tipo primitivo em seu programa Java. Use o seguinte código para criar dois inteiros com nomes e valores arbitrários para fins de demonstração :

int anInt = 3;

int anotherInt = 5;

Quando você declara um inteiro desta forma, tudo o que você precisa fornecer é um nome eo valor numérico que você deseja que a variável para armazenar .
2

Compare os números inteiros. Adicione o seguinte código , que compara os dois inteiros tipo primitivo e escreve uma mensagem relatando os resultados no console de saída padrão :

if ( anInt < anotherInt ) System.out.println (" anInt é menor do que anotherInt ");

else if ( anInt > anotherInt ) System.out.println (" anInt é maior do que anotherInt ");

mais System.out.println (" anInt é igual a anotherInt ");

primeiros testes de linha se o primeiro número inteiro é menor do que o segundo. Se esse teste retorna um resultado falso , o processamento se move para o próximo teste para ver se o primeiro é maior que o segundo , se um falso resultado é retornado , o programa assume que os dois são iguais. Para testar a igualdade , você pode usar o seguinte :

if ( anInt == anotherInt ) System.out.println (" ints são iguais ");
3

criar dois " inteiros " objetos em seu programa. Use o seguinte código para criar dois objetos para armazenar seus valores inteiros :

Integer anInteger = new Integer (10);

Integer anotherInteger = Integer.valueOf (6);

Este código demonstra as duas maneiras possíveis para criar um objeto " Integer " , ambas as quais envolvem fornecendo o valor numérico que você deseja representar .
4

Compare seus objetos "Integer " . Usando o código a seguir , compare os inteiros representados como objetos :

int comparisonResult = anInteger.compareTo ( anotherInteger );

O método " compareTo " da classe " Integer ", compara um valor inteiro para outro , retornando um tipo primitivo "int" como resultado. Se o primeiro inteiro ( a um método está a ser chamada ) é maior , o valor de uma for devolvido . Se o primeiro inteiro é menor, o valor de um negativo é devolvido . Se os números inteiros são iguais, um valor zero é retornado.
5

Verifique o resultado de sua operação " compareTo " . Use o seguinte código para testar e saída de seus resultados de comparação :

if ( comparisonResult > 0) System.out.println (" anInteger é maior do que anotherInteger " ) ;

else if ( comparisonResult < 0) System.out.println (" anInteger é menor do que anotherInteger ");

mais System.out.println (" anInteger é igual a anotherInteger ");

Experiência com seu código mudar os valores de cada número inteiro, em seguida, compilar e executar para ver a saída .