Ir ao conteúdo

Posts recomendados

Postado

Alguém poderia me informar, por favor onde se encontra o erro.

O console registra os seguinte erros: 

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at imc.Principal.main(Principal.java:12)

import java.util.Scanner;

public class Principal {

	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		System.out.println("Digite seu peso: ");
		double peso = teclado.nextDouble();
		System.out.println("Digite sua altura: ");
		double altura = teclado.nextDouble();
		double imc = peso/(altura*altura);
		
		if (imc < 18.5 ) {
			System.out.println(imc+" ---> MAGRO");
		if ( (imc > 18.5) && (imc <= 24.9) ) {
			System.out.println(imc+" ---> NORMAL");
		if ( (imc >= 25.0) && (imc <= 29.9) ) {
			System.out.println(imc+" ---> SOBREPESO");
		if ( (imc >= 30.0) && (imc <= 34.9) ) {
			System.out.println(imc+" ---> OBESO");
		if ( (imc >= 35.0) && (imc <= 39.9) ) {
			System.out.println(imc+" ---> OBESIDADE MÓRBIDA");
	  }	
	 }
	}
   }	
  }
 }
}

 

  • Moderador
Postado

@Lukinh4s Seu erro está nos blocos de IF.

Perceba que você colocou apenas IF em cada bloco e as chaves de fechamento tudo junto lá no final.

 

Você deve usar IF  ELSE IF e no último apenas ELSE.

 

import java.util.Scanner;
public class Main
{
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		
		System.out.println("Digite seu peso: ");
		double peso = teclado.nextDouble();
		
		System.out.println("Digite sua altura: ");
		double altura = teclado.nextDouble();
		
		double imc = peso/(altura*altura);
		
		if (imc < 18.5){
		    System.out.println(imc+" ---> MAGRO");
		}else if((imc > 18.5) && (imc <= 24.9)){
		     System.out.println(imc+" ---> NORMAL");
		}else if((imc >= 25.0) && (imc <= 29.9)){
		    System.out.println(imc+" ---> SOBREPESO");
		}else if((imc >= 30.0) && (imc <= 34.9)){
		    System.out.println(imc+" ---> OBESO");
		}else{
		    System.out.println(imc+" ---> OBESIDADE MÓRBIDA");
		}
			
	}
}

 

Não sei qual é seu exercício, mas também dá para fazer com switch case. Neste tipo de coisa quando tem multiplas respostas, é indicado o switch case.

  • Obrigado 1
Postado

Você deve estar digitando ponto no lugar de vírgula como separador decimal, na hora de informar a altura, e gerando o InputMismatchException.

Que eu me lembre antes o padrão era de fato o ponto, mas me parece que as últimas versões do java usam as configurações regionais do S.O.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!