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.

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.
Desculpa mas não sei se meu professor gostaria que eu usasse dessa forma.
mesmo assim muito obrigado por me ajudar.