import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
/*Captura string que for digitado pelo usuário*/
BufferedReader scan = new BufferedReader(new InputStreamReader(System.in));
String altura;
double pesoMasc;
double pesoFem;
String sexo;
System.out.print("Digite a altura: ");
altura = scan.readLine();
System.out.print("Digite o sexo: ");
sexo = scan.readLine();
/*Converte para maiúsculo*/
sexo = sexo.toUpperCase();
/*Na condição if comparei a String, se não encontrar,
irá comparar a primeira letra digita, se for M = masculino*/
if(sexo.equals("MASCULINO") || sexo.charAt(0) == 'M') {
pesoMasc = (72.7 * Double.parseDouble(altura)) - 58;
System.out.printf("O seu peso ideal é: %.2f", pesoMasc);
} else if(sexo.equals("FEMININO") || sexo.charAt(0) == 'F') {
pesoFem = (62.1 * Double.parseDouble(altura)) - 44.7;
System.out.printf("O seu peso ideal é: %.2f", pesoFem);
} else {
System.out.println("Sexo não encontrado! Favor verificar!");
}
}
}
O único método do Scanner que consome a quebra de linha é o nextLine(), por isso, ao ler entrada do teclado ele não traz praticamente ganho nenhum pois os métodos nextInt(), nextDouble() ou nextQualquerCoisa() não vão consumir a quebra de linha que fica no stream ao pressionar ENTER.