Erro ao criar uma função em java

Pessoal, a questão pede para fazer um programa que leia a altura e o sexo (codificado da seguinte forma: 1:feminino 2:masculino)
de uma pessoa. Depois faça uma função chamada peso ideal que receba a altura e o sexo via parâmetro
e que calcule e retorne seu peso ideal, utilizando as seguintes fórmulas: - para homens :
(72.7 * h) – 58 - para mulheres : (62.1 * h) – 44.7 .
Fiz exatamente assim , mas o código está apresentando alguns erros e não estou conseguindo identificar onde exatamente estou errando. Segue o código…

package ExerciciosProcedimento;

import java.util.Scanner;

/*  
  Faça um programa que leia a altura e o sexo (codificado da seguinte forma: 1:feminino 2:masculino)
de uma pessoa. Depois faça uma função chamada peso ideal que receba a altura e o sexo via parâmetro 
e que calcule e retorne seu peso ideal, utilizando as seguintes fórmulas: - para homens :
(72.7 * h) – 58 - para mulheres : (62.1 * h) – 44.7 Observação: Altura = h (na fórmula acima).

 */


public class Questao03 {
	
	
static double pesoideal(char a , double b ) {
		
		double peso;
		
		if(a=='1') {
			
			peso = (62.1 * b) – 44.7;
			
			return peso;
			
		} else {
			
			if(a=='2') {
				
				
				peso=(72.7 * b) – 58);
				
				return peso;
				
			}
		}	
	}
	
	
	
	public static void main(String[] args) {
		
		char  opcao ;
		
		double h ;
		
		
		Scanner input = new Scanner(System.in);
		
		
		System.out.println("Informe o sexo: FEM 1()  MAS 2()");
		
		
		opcao= input.next().charAt(0);
		

		System.out.println("Qual  a sua altura?");
		
		
		h= input.nextDouble();
		
		
		double resp = pesoideal(opcao , h);
		
		System.out.println("O seu peso ideal é :" + resp);
				
		
	}
	
	
}
Informe o sexo: FEM 1()  MAS 2()
1
Qual  a sua altura?
1.75
Exception in thread "main" java.util.InputMismatchException
	at java.base/java.util.Scanner.throwFor(Scanner.java:939)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
	at ExerciciosProcedimento.Questao03.main(Questao03.java:61)

Alguem poderia me ajudar?

Provavelmente o teu caracter separador de decimal é a virgula e não o ponto. Já experimentaste colocar 1,75?

Já sim. Continua dando erro.

Não sei como você conseguiu compilar, já que ele tem alguns erros de sintaxe. Primeiro, o método “pesoideal” indica que deveria retornar um double. Mas você colocou o retorno dele dentro de uma condição. Em outras palavras, se a pessoa digitar algo que não é nem 1 e nem 2, ele não iria retornar nada, o que é “proibido” pelas regras da linguagem.

Você precisa inicializar a variável “peso” e garantir o retorno dela, independente das condições:

static double pesoideal(char a , double b ) {
		
		double peso = 0.0;
		
		if(a=='1') {
			
                        peso = (62.1 * b) - 44.7;
			
		} else {
			
			if(a=='2') {
				
                                peso=((72.7 * b) - 58);
								
			}
		}
                return peso;
}
public class Questao03 {

static double pesoideal(char a , double b ) {
		
		double peso=0;
		
		if(a=='1') {
			
			peso = (62.1 * b) – 44.7;
				
		} else {
			
			
			if(a=='2') {
				
				
			peso=((72.7 * b) – 58);
				
				
			}
		}

	return peso;

	}

O erro continua .

No meu computador, ele funciona certinho. Provavelmente o erro está no sistema de caracteres que você está usando no seu teclado. Quando eu digito diretamente pelo meu, ele vai certinho, mas quando eu copio o seu código, ele da o erro. Em outras palavras, você está passando uma String para o
h= input.nextDouble();
Use:

h= Double.parseDouble(input.next());

Valeu por ajudar, vou continuar pesquisando .