Lógica para definir o maior e o menor entre 3 números [RESOLVIDO]

Olá, boa noite!
Bom, estou lendo o livro do Java como Programar. Então, eu me deparei com um exercicio que pede para que o usuário insere três digitos, e definir os três digitos o maior e o menor. Não quero resposta do exercicio, quero apenas que me ajudem a encontrar a lógica para o mesmo. Portanto, vamos lá; pensei da seguinte forma:

[code]//Aplicativo Java que tem como função pedir ao usuário que digite dois inteiros e fazer a soma
//e exibir o maior e o menor

import java.util.Scanner; //importa a classe Scanner para obter dados a partir da janela de comando
public class excalc5 {

//inicialização do programa Java
public static void main(String args[])
{
	
	//chama e/ou cria Scanner para obter dados a partir da janela de comando
	Scanner input = new Scanner(System.in);
	
	int number1;
	int number2;
	int number3;
	
	int soma;
	int max;
	int mim;
	int numero3 = 0;
	
	System.out.print("Digite o primeiro número:   \n");
	number1 = input.nextInt();
	
	System.out.print("Digite o segundo número:    \n");
	number2 = input.nextInt();
	
	System.out.print("Digite o terceiro número:   \n");
	number3 = input.nextInt();
	
     if (number1 > number2)
          number1 = numero3;
          number2 = numero3;
          else
        	  number1 = 
	
	
}

}
[/code]

Vejamos, a minha lógica para encontrar o maior e o menor, eu fiz assim: o if (number1 > number2); caso for maior, vai atribuir o resultado a uma variavel; caso for menor, fazer o mesmo procedimento. E pego o resultado de ambos procedimentos e coloco-a em uma variavel, por exemplo int variavelexemplo, e assim, pego o a variavel exemplo e uso o if(variavelexemplo > number3) e assim sendo pego o resultado. Mas seguindo minha lógica, não consigui fazer em Java. Lembrando que eu não posso usar procedimentos avançados em Java, pois estou no inicio, portanto tenho que usar procedimentos simples. Alguem poderia me ajudar ?

Um grande abraço a todos!

Bom, a sua lógica pra mim está certa, para passar para o código
você cria um if para saber se o primeiro número é maior que o segundo
e salva o resultado em uma variável, depois faz outro if para
comparar se o terceiro número é maior do que o da váriavel

Mas veja:

int local;
if (number1 > number2)
   //se sim
    local = number1, number2;

Seria assim ?
Me dê informações de como seria no código.
Até…

A pensei que vocÊ não queria código :lol:

int local;
//aqui você está comparando se number1 é maior que number2,
//se sim salva o valor de number1 na variável local, se não
//salva o valor de number2
if(number1 > number2)
local = number1;
else
local = number2;

agora você compara local com number3

Ola,

Essa eh a versao simplificada de um problema classico de ordenacao. A ideia eh ordenar a lista de forma ascendente
e depois obter o primeiro e o ultimo elemento. Para efetuar a ordenacao existem dezenas de algoritmos, cada um
com uma ordem de complexidade. No caso, o seu raciocinio eh quase um Buble Sort, entao, de uma lida na definicao
do Buble Sort e implemente! Nota: O Buble Sort eh extremamente ineficiente :slight_smile:

[ ]'s
Angelo

Não consigui obter o maior número, veja o código:

//Aplicativo Java que tem como função pedir ao usuário que digite dois inteiros e fazer a soma
//e exibir o maior e o menor

import java.util.Scanner; //importa a classe Scanner para obter dados a partir da janela de comando
public class excalc5 {
	
	//inicialização do programa Java
	public static void main(String args[])
	{
		
		//chama e/ou cria Scanner para obter dados a partir da janela de comando
		Scanner input = new Scanner(System.in);
		
		int number1;
		int number2;
		int number3;
		
		int soma;
        int local;
		int numero3 = 0;
		
		System.out.print("Digite o primeiro número:   \n");
		number1 = input.nextInt();
		
		System.out.print("Digite o segundo número:    \n");
		number2 = input.nextInt();
		
		System.out.print("Digite o terceiro número:   \n");
		number3 = input.nextInt();
		
       if (number1 > number2)
    	   local = number1;
       else
    	   local = number2;
       
       if(local > number3)
    	   System.out.printf("O número maior é: %d", number3);
		
		
	}

}

Qual é o erro ?

Nota: não consigui entender o que o schranko disse em sua postagem.

Você está comparando se local é maior que number3
e está retornando o valor de number3 se local for maior ¬¬
você tem que retornar o valor de local no lugar do number3

se o valor de local não for maior que number3 você retorna o number3

Obrigado nakais por me ajudar. Consigui executar perfeitamente o programa.

Boa noite.

if (number1 > number2 && number1 > number3) 	//o numero 1 maior que o 2 e 3 ,senão o numero maior é 2 ou 3
	local = number1;			                       //depois compara o numero 2 e 3 pra saber qual o maior
else if (number2 > number3)			               //o maior valor é gravado em local
	local = number2;
else 
	local = number3;	
1 curtida
       if (number1 > number2)
    	   local = number1;
       else
    	   local = number2;
       
       if(local > number3)
    	   System.out.printf("O número maior é: %d", local);
       else
           System.out.printf("O número maior é: %d", number3);

ou

       local = number3;
       if (number1 > local)
    	   local = number1;
       if (number2 > local)
    	   local = number2;
       System.out.printf("O número maior é: %d", local);

Método mais eficiente e econômico.

corrigindo seu código, caso o number3 seja o maior e queira imprimi-lo.

O uso de condicional simples várias vezes se torna mais simples e eficiente.

Show de bola David, ajudou bastante sua dica!