Tento pegar o maior e da erro?

void numeroMaior() 
{
    int maior;
    if (numero1 > numero2)
    {
        maior = numero1;
    }
    if (numero1 > numero3)
    {
        maior = numero2;
    }
    if (numero2 < numero3)
    {
        maior = numero3;
    }
}

    System.out.println("*********************");
    System.out.println("Numero Maior");
    Ordem m1= new Ordem();
    m1.numero1 = 13;
    m1.numero2 =15;
    m1.numero3 = 6;
    c1.numeroMaior();
    System.out.println("Numero maior e: %d " +m1.numeroMaior());`Texto pré-formatado`

Quando postar código, seleciona ele e clica no botão de texto pré formatado, identificado pelo botão </>.

Não dá pra compilar o código que você postou pois ele está incompleto.

De antemão dá pra ver que tem um erro na seguinte linha:

System.out.println("Numero maior e: %d " + m1.numeroMaior());

O método numeroMaior() tem retorno do tipo void, ou seja, ele não retorna nada.

Se ele não retorna nada, não tem como concatenar o retorno com a String que você passa pro println.

Eu consegui resolver aqui, era printf com erros, só não entendi por que eu tive que inicializar a variável maior com 0

Não precisa inicializar com 0, mas precisa inicializar com algum valor.
A variável maior foi declarada dentro de um método, ou seja, é uma variável local.
Variáveis locais não possuem um valor padrão, elas precisam ser inicializadas explicitamente.

Ao invés de inicializar com 0, você poderia ter inicializado ela com o primeiro número e depois só comparar com os outros dois, assim:

int maior = numero1;
if (numero2 > maior) {
    maior = numero2;
}
if (numero3 > maior) {
    maior = numero3;
}

Entendi , obrigado ai .

1 curtida