E ai galera do GUJ eu to fazendo facu de sistemas e começei a ver o linguagem java e gostaria q me descem uma luz quanto a esse exercicio .
Olha o codigo ai.
Entrar com nome, sexo e a idade de uma pessoa. Se a pessoa for do sexo feminino e tiver menos que 25 anos, imprimir nome e a mensagem: ACEITA. Caso contrario, imprimir nome e a mensagem: NÃO ACEITA.
public static void main(String[]args){
int idade;
String nome=new String(“Masculino”);
String sexo=new String(“Feminino”);
System.out.println(“1.Digite o nome desejado”);
nome=Entrada.getString();
System.out.println(“2.Digite o sexo”);
sexo=Entrada.getString();
System.out.println(“3.Digite a idade”);
idade=Entrada.getInt();
sexo=Entrada.getString();
if(sexo==“F” && idade<25)
System.out.println(“Aceita”+nome.equals(sexo));
else
System.out.println(“Nao Aceita”+nome.equals(sexo));
}
Hail
Arrumei teu código cara, você tava fazendo umas coisas bem estranhas xD
Vê ae e dá uma estudada.
public static void main(String[]args){
int idade;
//Não entendi o porque você inicializou o nome com "Masculino" o.O
String nome=new String("Masculino");
String sexo=new String("Feminino");
System.out.println("1.Digite o nome desejado");
nome=Entrada.getString();
do{
System.out.println("2.Digite o sexo (F - feminino, M - masculino)");
sexo=Entrada.getString();
//Você tem que validar a string informada, senão se o usúario informar "feminino"
//já não passa pelo seu if, que compara com "F"
}while(!sexo.equalsIgnoreCase("f") && !sexo.equalsIgnoreCase("m"));
do{
System.out.println("3.Digite a idade");
idade=Entrada.getInt();
//Valide a idade tambem para evitar aceitar números negativos ou muito grandes
}while(idade <= 0 ||idade > 120);
if(sexo.equalsIgnoreCase("F") && idade<25)
//System.out.println("Aceita"+nome.equals(sexo));
//Não tem motivo para você imprimir essa comparação entre o nome e o sexo
//(Bem estranha por sinal o.O)
System.out.println("Aceita!");
else
//System.out.println("Nao Aceita"+nome.equals(sexo));
System.out.println("Não Aceita!");
}
Só explicando o porquê de não se utilizar sexo == “F”,
sexo é uma variavel que voce definiu do tipo String, logo é uma REFERENCIA para o tipo String. Em Java, o operador == não compara o conteudo e sim se as duas pontas são de fato a mesma coisa (Exceto tipos primitivos, para comparar tipos primitivos (int, char, double etc) pode-se usar o ==). Portanto, voce esta com esse IF comparando se sua referencia (sexo) é igual a “F”, o que nunca vai ser verdade.
Para comparar o CONTEUDO de objetos, utilize o metodo equals, herdado da classe Object. Por isso trocaram para sexo.equals(“F”), ou seja, voce esta perguntando se o conteudo do objeto referenciado por sexo é igual a “F”.
Uma boa pratica: ao inves de sexo.equals(“F”), utilize “F”.equals(sexo) , pois se sexo for NULL não será lançado um NullPointerException. Fazendo sexo.equals voce esta chamando diretamente o metodo equals de uma referencia que pdoe ser nula. Ao chamar em “F”, voce tem certeza que isso não é nulo, portanto essa exceção não ocorrerá.