Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Meu código funcionou sem abrir e fechar as condicionais com { } . Isso é algum bug?

public class TestaImc {

    public static void main(String[] args) {

        int peso = 50;
        double altura = 1.87;
        double altura2 = altura * altura;
        double imc = peso / altura2;

        if(imc <= 15 ) 
            System.out.println("Voce está magro d+");
        else if (imc >= 16 && imc <= 26)     
            System.out.println("Seu imc está bom");
        else if (imc >= 27 && imc <= 33) 
            System.out.println("Voce está gordo");

}
    }
2 respostas

Quando fiz da maneira correta não compilou

solução!

Funciona sim, pois após o if você só tem uma linha de instrução, então ele consegue entender que a próxima linha pertence à aquele if, agora se você for utilizar mais de uma linha de instrução para o if é necessário colocar em um bloco {}

Com os {} deveria funcionar corretamente também, confere se não faltou fechar algum {}

public class TestaImc {

    public static void main(String[] args) {

        int peso = 50;
        double altura = 1.87;
        double altura2 = altura * altura;
        double imc = peso / altura2;

        if(imc <= 15 ) {
                System.out.println("Voce está magro d+");
        }
        else if (imc >= 16 && imc <= 26)     {
                System.out.println("Seu imc está bom");
        }
        else if (imc >= 27 && imc <= 33) {
                System.out.println("Voce está gordo");
        }
    }
}