Dúvida no método para encontrar o maior

Boa noite!
Por gentileza, alguém pode me indicar o erro.
Preciso que o método retorne o maior dentre os números digitados.
Dentro do main, o método retorna o maior, mas quando ele está fora , retorna o ultimo digitado.
obrigado!

public class MaiorDosNumeros {

public static void main(String[] args) {
    Scanner i = new Scanner(System.in);
    int count = 0;
    int n = 0;
    while (count < 5) {
        count++;
        System.out.println("Informe o " + count + "º numero");
        n = i.nextInt();
      
    }
    System.out.println("O maior " + Maior(n));
}

public static int Maior(int k) {
    int maior = 0;

    if (k > maior) {
        maior = k;
    }
     return maior;
 }

}

Você está usando uma IDE? Acho que te ajudaria a entender o que está acontecendo, se rodar esse programa com um depurador (debugger).
Com isso você consegue ver o que o programa faz passo a passo e vai entender porque nao está funcionando.

Se nao tiver, vou tentar te ajudar com uma linha de pensamento: você quer “método retorne o maior dentre os números digitados.”. O método Maior tá recebendo quantos números para comparar? Todos os números digitados ou apenas 1 número?

Olá Abel!
Estou usando o netBeans
Ele só está comparando o último numero digitado.
Eu havia usado um laço de for com i = 0; i < k; i++ e também não deu certo

O erro está no fato de vc estar usando uma variável para armazenar os números, que por sua vez só é capaz de “Armazenar” um número, vc tem que usar um vetor de inteiros,

O fato é que ele está passando para o método maior apenas o último valor digitado.

Existem duas formas de resolver, ou você passa um vetor para o método e faz toda a comparação, ou chama o método Maior toda as vezes que um número for digitado, passando o número digitado e o maior número até aquele momento.

Certo.
Obrigado pela dica!

Valeu, obrigado pela dica!

Olá, Alberto ! Tenta fazer desse jeito
(Caso queria de forma diferente ,me avisa :D)
import java.util.Scanner;

public class MaiorNumero {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int[] vetor = new int[5];
int maiorElemento = 0;

	// Entrada de Dados
	for (int i = 1; i < vetor.length; i++) {
		System.out.print("Numero " + i + ":");
		vetor[i] = teclado.nextInt();
	}
	
	// Calculo para saber qual o Maior Elemento do Vetor
	for (int i = 1; i < vetor.length; i++) {
		if (vetor[i] > maiorElemento) {
			maiorElemento = vetor[i];
		}
	}
	
	// Exibe o maior valor
	System.out.println("Maior Valor informado " + maiorElemento);
}

}

Você pode fazer dessa forma também.
O que eu acho melhor :smiley:

//Codificação
import java.util.Scanner;

public class MaiorNumero {

public static void main(String[] args) {
	 System.out.println("Maior valor Informado");  
	 maiorValor();
	  
}
public static void maiorValor() {
	Scanner teclado = new Scanner(System.in);
   		int maiorElemento = 0;
		 int vetor[] = new int[5];
         //Pega dados de entrada
		 for(int i = 1;i<vetor.length;i++) {
		          System.out.print("Numero "+i+" : ");
		          vetor[i] = teclado.nextInt();
                  //Calculo para saber qual o maior Elemento
		          if(vetor[i]>maiorElemento) {
                	  maiorElemento = vetor[i];
                  }			   
	   }
	    System.out.println(maiorElemento);
} 

}

uma forma melhor de fazer esse codigo e se melhorando esse metodos ficaria assim, e serve ate mesmo para encotrar o menor valor e ficaria assim

import java.util.Scanner;

public class retornaMaiorEMenor {

	static int retornaMaior(int[] vetor){
	    int maior = vetor[0];
	    for (int i = 1 ; i < vetor.length; i++){
	       if (vetor[i] > maior){
	           maior = vetor[i];
	       } 
	    }
	    return(maior);
	}
	
	static int retornaMenor(int[] vetor){
	    int menor = vetor[0];
	    for (int i = 1 ; i < vetor.length; i++){
	       if (vetor[i] < menor){
	           menor = vetor[i];
	       } 
	    }
	    return(menor);
	}
	
	public static void main(String[] args) {
		
		int[] vetor = new int[4];
		Scanner dados = new Scanner(System.in);
		    
		    for (int i = 0 ; i < 4; i++){
		        System.out.println("digite o " + (i + 1) + "ª valor: ");
		        vetor[i] = dados.nextInt();
		    }
		    
		    System.out.println("maior valor:" + retornaMaior(vetor));
		    System.out.println("menor valor:" + retornaMenor(vetor));
	}
}

tem esse metodo

static int[] processa(int[] vetor) {
    int[] resultado = new int[2];
    resultado[0] = vetor[0];
    resultado[1] = vetor[0];
    for (int i = 1; i < vetor.length; i++) {
        if (vetor[i] > resultado[0]) {
            resultado[0] = vetor[i];
        }
        if (vetor[i] < resultado[1]) {
            resultado[1] = vetor[i];
        }
    }
    return (resultado);
}

ele retorna o array com na posição 0 o maior valor e na posição 1 o menor

Obrigado pela dica!

Valeu Fábio, obrigado!