Esporte correspondente sendo informado altura e sexo
7 respostas
W
wlargado
bo tarde pessoal. será que alguém pode me ajudar no código abaixo que dá o erro:
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.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Exercicios_Aula02.InformaDadoCorrespoTabela.main(InformaDadoCorrespoTabela.java:13)
importjava.util.Scanner;publicclassInformaDadoCorrespoTabela{publicstaticvoidmain(Stringargs[]){Scannerinput=newScanner(System.in);System.out.println("Informe o Sexo com m (para masculino) e f (para feminino): ");Stringsexo=input.next();System.out.println("Informe a Altura, ex. 1.8: ");doublealtura=input.nextInt();//para o sexo masculinoif(sexo.equals("m")){//como está em String usa-se o equalsif(altura>1.80){System.out.println("O Esporte correspondente é Basquete");}elseif(sexo.equals("m")){if((altura>=1.70)&&(altura<=1.80)){System.out.println("O Esporte correspondente é Voleibol");}elseif(sexo.equals("m")){if((altura<1.50)){System.out.println("O Esporte correspondente é Natação");}}}//para sexo femininoif(sexo.equals("f")){//como está em String usa-se o equalsif(altura>1.70){System.out.println("O Esporte correspondente é Basquete feminino");}elseif(sexo.equals("f")){if((altura>=1.5)&&(altura<=1.7)){System.out.println("O Esporte correspondente é Voley");}elseif(sexo.equals("f")){if((altura<1.5)){System.out.println("O Esporte correspondente é Natação");}else{System.out.println("O Esporte correspondente é Natação");}}}}}}}
System.out.println("Informe a Altura, ex. 1,8: ");
double altura = input.nextInt();
Não seria o caso de usar nextDouble() ao invés de int? E ao invés de ponto use vírgula para o double;
W
wlargado
danilovicente:
System.out.println("Informe a Altura, ex. 1,8: ");
double altura = input.nextInt();
Não seria o caso de usar nextDouble() ao invés de int? E ao invés de ponto use vírgula para o double;
deu a metade certo, o sexo masculino tá beleza.
Para o sexo feminino nao está mostrando resultado…
D
danilovicente
wlargado:
danilovicente:
System.out.println("Informe a Altura, ex. 1,8: ");
double altura = input.nextInt();
Não seria o caso de usar nextDouble() ao invés de int? E ao invés de ponto use vírgula para o double;
deu a metade certo, o sexo masculino tá beleza.
Para o sexo feminino nao está mostrando resultado…
Têm um erro nas chaves do if que verifica se é masculino ou feminino. Vê aê
W
wlargado
pensei nisso e fiz logo assim:
importjava.util.Scanner;publicclassInformaDadoCorrespoTabela{publicstaticvoidmain(Stringargs[]){Scannerinput=newScanner(System.in);System.out.println("Informe o Sexo com m (para masculino) e f (para feminino): ");Stringsexo=input.next();System.out.println("Informe a Altura, ex. 1,8: ");doublealtura=input.nextDouble();//para o sexo masculinoif(sexo.equals("m")){//como está em String usa-se o equalsif(altura>1.80){System.out.println("O Esporte correspondente é Basquete");}elseif(sexo.equals("m")){if((altura>=1.70)&&(altura<=1.80)){System.out.println("O Esporte correspondente é Voleibol");}elseif(sexo.equals("m")){if((altura<1.70)){System.out.println("O Esporte correspondente é Natação");}else//para sexo femininoif(sexo.equals("f")){//como está em String usa-se o equalsif(altura>1.70){System.out.println("O Esporte correspondente é Basquete feminino");}elseif(sexo.equals("f")){if((altura>=1.50)&&(altura<=1.70)){System.out.println("O Esporte correspondente é Voley");}elseif(sexo.equals("f")){if((altura<1.50)){System.out.println("O Esporte correspondente é Natação");}}}}}}}}}
continou sem mostrar para o sexo feminino
D
danilovicente
Pô só ver seu if e else cara arrumei aqui e funcionou beleza. Não posso te dar a resposta.
Frantic_Avenger
Seu
if(sexo.equals("f"))
está dentro do
if(sexo.equals("m"))
resumindo nunca chegará em “f”. E também você está repetindo várias vezes o mesmo if sem necessidade, após verificado pode ver só as alturas.