Esporte correspondente sendo informado altura e sexo

7 respostas
W
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)
import java.util.Scanner;

public class InformaDadoCorrespoTabela {
	public static void main(String args[]){
		Scanner input = new Scanner(System.in);
		
		System.out.println("Informe o Sexo com m (para masculino) e f (para feminino): ");
		String sexo = input.next();
		
		System.out.println("Informe a Altura, ex. 1.8: ");
		double altura = input.nextInt();

		//para o sexo masculino
		if(sexo.equals("m")) {  //como está em String usa-se o equals
			if( altura > 1.80){
				System.out.println("O Esporte correspondente é Basquete");
			}else if(sexo.equals ("m")) {
				if((altura >= 1.70) && (altura <= 1.80)){
					System.out.println("O Esporte correspondente é Voleibol");
					}else if (sexo.equals("m")){
						if((altura < 1.50)){
							System.out.println("O Esporte correspondente é Natação");
	
						}
					}
			}

		//para sexo feminino
			if(sexo.equals("f")) {  //como está em String usa-se o equals
				if( altura > 1.70){
					System.out.println("O Esporte correspondente é Basquete feminino");
				}else if(sexo.equals ("f")) {
					if((altura >= 1.5) && (altura <= 1.7)){
						System.out.println("O Esporte correspondente é Voley");
						}else if (sexo.equals("f")){
							if((altura < 1.5)){
								System.out.println("O Esporte correspondente é Natação");
			}else{
				System.out.println("O Esporte correspondente é Natação");
							}
						}
				}
			}
		}
	}
}
Oque aconteceu? Fico grato

7 Respostas

D

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

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

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
pensei nisso e fiz logo assim:
import java.util.Scanner;

public class InformaDadoCorrespoTabela {
	public static void main(String args[]){
		Scanner input = new Scanner(System.in);
		
		System.out.println("Informe o Sexo com m (para masculino) e f (para feminino): ");
		String sexo = input.next();
		
		System.out.println("Informe a Altura, ex. 1,8: ");
		double altura = input.nextDouble();

		//para o sexo masculino
		if(sexo.equals("m")) {  //como está em String usa-se o equals
			if( altura > 1.80){
				System.out.println("O Esporte correspondente é Basquete");
			}else if(sexo.equals ("m")) {
				if((altura >= 1.70) && (altura <= 1.80)){
					System.out.println("O Esporte correspondente é Voleibol");
					}else if (sexo.equals("m")){
						if((altura < 1.70)){
							System.out.println("O Esporte correspondente é Natação");
			}else

		//para sexo feminino
			if(sexo.equals("f")) {  //como está em String usa-se o equals
				if( altura > 1.70){
					System.out.println("O Esporte correspondente é Basquete feminino");
				}else if(sexo.equals ("f")) {
					if((altura >= 1.50) && (altura <= 1.70)){
						System.out.println("O Esporte correspondente é Voley");
						}else if (sexo.equals("f")){
							if((altura < 1.50)){
								System.out.println("O Esporte correspondente é Natação");
							}
						}
					}
				}
				}
			}
		}
	}
}
continou sem mostrar para o sexo feminino
D

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.

W
Criado 6 de dezembro de 2011
Ultima resposta 6 de dez. de 2011
Respostas 7
Participantes 3