Java Iniciante

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));
}

:? desde ja agredeço.

Nessa linha aqui

if(sexo=="F" && idade<25) 

troque por

if(sexo.equals("F") && idade<25) 

utilize a tag code para melhorar seu codigo.

PS: Depois da linha idade=Entrada.getInt(); tem uma nova leitura do sexo, acredito que isso seja desnecessário.

[]'s

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!"); }

PS: Bem-vindo ao GUJ :smiley:

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á.