Como colocar um intervalo entre numeros em um if

Estou querendo fazer algo parecido com isso:
se o IMC é maior que 16 e menor que 17,escreva:Magreza moderada.
se o IMC é maior que 17 e menor que 118.5,escreva:Magreza leve.
E vai indo, só que meu programa está parando em magreza moderada, não calcula o resto.

Vc terá que fazer uma lógica semelhante à essa:

int idade = // recupera a idade

if (idade < 13) {
	// crianca
} else if (idade >= 13 && idade < 18) {
	// adolescente
} else { // se cair no else, é por não se encaixa em nenhum acima
	// adulto
}
if (imc > 16 && imc < 17) {
    // Magreza moderada
} else if (imc > 17 && imc < 118.5) {
    // Magreza leve
}