Me ajude nessa questão java

Como faço para calcular o imc infantil ? é a mesma formula do imc de um adulto ?

public static void main(String[] args) {
double peso;
double altura;

  System.out.println("Informe o seu peso");
  peso = leia.nextDouble();
  System.out.println("Informe a sua altura!");
  altura = leia.nextDouble();

double imc;
imc = peso / (altura*altura);

  if(imc < -2){
  //Abaixo de -2
      System.out.println("Abaixo do Normal");
  //de -2 até abaixo de +1
  }else if (imc >= -2 && imc <= 1){
      System.out.println("Peso Normal");
 //+1 até abaixo de +2
  }else if (imc >= 1 && imc <= 2){
      System.out.println("Sobrepeso");
  }else{
      System.out.println("Obesidade");
  }     

}

Alguém poderia me ajudar em que estou errando ?

Página onde há as regras para o cálculo do IMC.
[https://www.calculoimc.com.br/]

O problema está nos valores do IMC, na verdade eles são:

Resultado Situação
Abaixo de 17 Muito abaixo do peso
Entre 17 e 18,49 Abaixo do peso
Entre 18,5 e 24,99 Peso normal
Entre 25 e 29,99 Acima do peso
Entre 30 e 34,99 Obesidade I
Entre 35 e 39,99 Obesidade II (severa)
Acima de 40 Obesidade III (mórbida)

Então o código ficaria assim:

Scanner leia = new Scanner(System.in);
System.out.println("Informe o seu peso: ");
double peso = leia.nextDouble();
System.out.println("Informe a sua altura: ");
double altura = leia.nextDouble();

double imc = peso / (altura * altura);
if (imc < 17) {
    System.out.println("Muito abaixo do peso");
} else if (imc < 18.5) {
    System.out.println("Abaixo do peso");
} else if (imc < 25) {
    System.out.println("Peso Normal");
} else if (imc < 30) {
    System.out.println("Acima do peso");
} else if (imc < 35) {
    System.out.println("Obesidade I");
} else if (imc < 40) {
    System.out.println("Obesidade II (severa)");
} else {
    System.out.println("Obesidade III (mórbida)");
}

Repare que não precisa declarar as variáveis em uma linha e atribuir o valor em outra, você pode fazer as 2 coisas de uma vez.

E no if, não precisa testar a mesma coisa várias vezes.

Por exemplo, aqui:

if (imc < 17) {
    System.out.println("Muito abaixo do peso");
} else if (imc < 18.5) {
    System.out.println("Abaixo do peso");
}

Se o IMC for menor que 17, ele entra no if.

Se não entrar no if é porque não é menor que 17, e portanto ele é maior ou igual a 17. Sendo assim, eu não preciso colocar else if (imc >= 17 && imc < 18.5), pois se chegou nesse else é porque com certeza ele é maior ou igual a 17 (se não fosse, ele teria entrado no primeiro if). Então testar isso é redudante e desnecessário, por isso eu só testo se é menor que 18.5.

O mesmo vale para os demais else if: se não entrou no else if (imc < 18.5) é porque ele não é menor que 18.5 e portanto só pode ser maior ou igual. Então no próximo else if eu só testo se é menor que 25, e assim por diante. Por fim, se chegar no último else, é porque é maior ou igual a 40.