importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassMain{publicstaticvoidmain(String[]args)throwsException{/*Captura string que for digitado pelo usuário*/BufferedReaderscan=newBufferedReader(newInputStreamReader(System.in));Stringaltura;doublepesoMasc;doublepesoFem;Stringsexo;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);}elseif(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!");}}}
Scanner:
Mais simples de usar
Permite vários tipos de sepadores (além da quebra de linha)
BufferedReader:
Mais rápida
Pode ser associada a vários tipos de readers
Eu também sou novato em Java quando utilizei o scanner.NextDouble() deu uma exception, por isso tive que usar o BufferedReader
staroski2 likes
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.
WillianC19
Obrigado @staroski,
Tirou até uma dúvida minha também!