Como usar o operador diferente na estrutura While

Gente travei na parte do sexo, não consigo fazer repetir a pergunta pro usuario digitar novamente se o usuário digitar um valor q seja diferente de F ou M … gostaria de uma ajuda usando o while pq repete enquanto digitar errado…com o if else ele so pergunta uma vez e encerra.
public class exercicio03 {

public static void main(String[] args) {
	Scanner scan=new Scanner( System.in);

	// Faça um programa que leia e valide as seguintes informações: a. Nome: maior que 3 caracteres; 
	//b. Idade: entre 0 e 150; c. Salário: maior que zero; d. Sexo: 'f' ou 'm'; e. Estado Civil: 's', 'c', 'v', 'd'
	
	String nome,sexo,estadoCivil;
	int idade;
	double salario;
	
	System.out.println("Informe seu nome :");
    nome=scan.next();
    
    while(nome.length()<3) { //lenght é tamanho
    	System.out.println("Nome muito pequeno. Informe seu  nome  again:");
    	nome=scan.next();
    }        	

    
    System.out.println("Informe sua idade entre 0-100 :");
    idade=scan.nextInt();
    
    while(idade<0 ||  idade>150) {
        System.out.println("Error!Informe sua idade novamente :");
        idade=scan.nextInt();
    }
    
   
    System.out.println("Informe seu salario:");
    salario=scan.nextDouble();
    
    while (salario<0) {
    	System.out.println("  salario precisa ser maior q zero! tente novamente:");
        salario=scan.nextDouble();
    }
    
    System.out.println("  Informe seu sexo: F -- M ");
    sexo=scan.next();
    /*while (sexo!="f" && sexo!="m"){
    	 System.out.println("Sexo inválido, digite again");
         sexo=scan.next();
    }*/
     if(sexo.equalsIgnoreCase("f")|| sexo.equalsIgnoreCase("m")) {
    	 
     }else {
    	 System.out.println("Sexo inválido, digite again");
         sexo=scan.next();
     }
 
    System.out.println("Seu nome é : " +nome);
   System.out.println(" sua idade :" +idade);
    System.out.println("Seu salario é : " +salario);
    System.out.println("Seu sexo é : " +sexo);
  //  System.out.println("Seu estado civil é : " +estadoCivil);





    
    
    
    
    
    

	
	

}

}

O problema do código acima é comparar String com == ou !=.
Use equalsIgnoreCase (como fez no if abaixo) ou equals.
Assim:

while (!sexo.equalsIgnoreCase("f") && !sexo.equalsIgnoreCase("m")){
    System.out.println("Sexo inválido, digite again");
    sexo=scan.next();
}
1 curtida

poxa meu querido obrigada… deu certo… agora uma duvida, o q seria essa exclamacao?? é a negação?

Negação. Você nega alguma coisa (ou testa o negativo dela).

Isso testa (se não for igual a F) e (se não for for igual a M); ou seja, se for qualquer outra coisa digitada.

3 curtidas

obrigada a todos pela ajuda

1 curtida

Disponha, seja bem vinda ao fórum. E quando estiver mais experiente, lembre de vir aqui ajudar aos novos.

2 curtidas

Valew!