Println não esta mostrando o resultado certo

4 respostas
A

Olá, estou com outra duvida
Neste programa, entra-se com o nome, idade e sexo da pessoa, e imprime o nome se o sexo for igual a feminino e idade menor que 25.
Mas quando eu entreo com os seguintes dados: Nome:Ana e sexo; feminino, o nome não é mostrado.
gostaria de saber porque não está funcionando. Alguém possa me ajudar?

import java.util.Scanner;
public class Exe37
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
      
        System.out.println("Digite o nome: ");
        String nome=sc.nextLine();
        
        System.out.println("Digite o sexo: ");
        String sexo=sc.nextLine();
        
        System.out.println("Digite a idade: ");
        int id=sc.nextInt();
        
        if ((sexo == "feminino" || sexo == "Feminino") && (id < 25))
            System.out.println("Nome: "+nome);
        else
            System.out.println("tente de novo");
            
    }
}

4 Respostas

D
Tente trocar:

if (sexo == feminino || sexo == Feminino)

por

if (sexo.equals(feminino) || sexo.equals(Feminino))

Eu iria mais além e escreveria:

if (sexo.equalsIgnoreCase(“feminino”))

A

funcionou. valeu pela ajuda. é que eu ainda estou aprendendo .

P

Dica, dá uma pesquisada em Enums.

E outra coisa, Strings se comparam com equals. Equals basicamente verifica o conteudo do objeto e o tipo dele, se dois objetos tiverem isso igual, retorna true.

Já == só compara a referencia.

[]'s!

D

Disponha! Qualquer dúvida estamos aí, afinal ninguém nasceu sabendo! :slight_smile:

Um abraço e boa sorte nesse seu aprendizado.

Criado 28 de julho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 4
Participantes 3