Verificação de sexo

Olá, tenho um programa que pede o sexo do usuário,
mas se o proprio digitar algo diferente de “m” ou “f” o programa aceita.
Como posso fazer essa verificação?
Agradeço desde já.
O códico:

package app;

import java.util.Scanner;

public class Trabai {

private static String[] nomes = new String[1000];

public static void main(final String[] args) {

    int idade[] = new int[1000];

    char sexo[] = new char[1000];

    float peso[] = new float[1000];

    float altura[] = new float[1000];

    int i = 0;

    float ;

    Scanner teclado = new Scanner(System.in);

    for (i = 0; i < 1000; i++) {

        System.out.println("Informe sua idade: ");

        idade[i] = teclado.nextInt();

        while (idade[i] < 18) {

            System.out.println("Sua idade está invalida para iniciar a pesquisa");

            System.out.println("Informe uma idade valida");

            idade[i] = teclado.nextInt();

        }

        System.out.println("Informe seu nome: ");

        nomes[i] = teclado.next();

        System.out.println("Informe seu sexo: ");

        sexo[i] = teclado.next().charAt(0);

        System.out.println("Informe seu peso: ");

        peso[i] = teclado.nextFloat();

        System.out.println("Informe sua altura: ");

        altura[i] = teclado.nextFloat();

        

    }

}

}

Uma alternativa, seria um laço idêntico ao que você fez para a idade.

while(!sexo[i].Equals('f') || !sexo[i].Equals('m'){
    ...
}

Boa tarde,
“message”: “Cannot invoke Equals(char) on the primitive type char”
O meu VS CODE está apresentando esse erro,
Sou novo no Java poderia me explicar para oque serve essas linhas de códicos.
:slight_smile:

Desculpe-me, char é um tipo primitivo, logo não terá a função Equals().

O correto é:

while((sexo[i] != 'f')  && (sexo[i] != 'm')){
		
}

While é um laço de repetição. Basicamente, repetira algo até que a condição desejada seja atingida.

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

public class Trabai {

private static String[] nomes = new String[1000];

public static void main(final String[] args) {

    int idade[] = new int[1000];
    char sexo[] = new char[1000];
    float peso[] = new float[1000];
    float altura[] = new float[1000];
    String msg[] = {
            "Informe sua idade: ",
            "Informe seu nome: ",
            "Informe seu sexo: ",
            "Informe seu peso: ",
            "Informe sua altura: ",
            "Sua idade está invalida para iniciar a pesquisa\nInforme uma idade valida",
            "Seu sexo está invalido para iniciar a pesquisa\nInforme um sexo valido"
    };

    Scanner teclado = new Scanner(System.in);

    for (int i = 0; i < 1000; i++) {
        System.out.println(msg[0]);
        idade[i] = teclado.nextInt();

        while (idade[i] < 18) {
            System.out.println(msg[5]);
            idade[i] = teclado.nextInt();
        }

        System.out.println(msg[1]);
        nomes[i] = teclado.next();
        System.out.println(msg[2]);
        sexo[i] = teclado.next().charAt(0);
        String sx = String.valueOf(sexo[i]).toLowerCase();
        while (!"m".equals(sx) & !"f".equals(sx)) {
            System.out.println(msg[6]);
            sexo[i] = teclado.next().charAt(0);
        }
        System.out.println(msg[3]);
        peso[i] = teclado.nextFloat();
        System.out.println(msg[4]);
        altura[i] = teclado.nextFloat();
    }

}

}

Obrigado por me ajudar com meu trabalho.:kissing_heart:

Desculpa mas não sei se meu professor gostaria que eu usasse dessa forma.
mesmo assim muito obrigado por me ajudar.:kissing_heart: