0
import java.util.Scanner;

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

        System.out.println("What is your gender, male of female?");
        gender = scan.nextLine();


        if( gender == "f"||gender =="F"||gender =="female"||gender 
            =="Female"||gender =="FEMALE")
        {
            System.out.println("A female" );
        }
        if( gender == "m"||gender =="M"||gender =="male"||gender 
            =="Male"||gender =="MALE")
        {
            System.out.println("A male.");
        }
    }
}

No matter what the user enters, the result always goes to else statement. Any way to fix this?

Mika Sundland
  • 18,120
  • 16
  • 38
  • 50
SethW
  • 11
  • 1
  • 1
  • 3

3 Answers3

2

In Java the correct way to compare strings is by using '.equals' operator.

Change all your

gender == "some string" 

to

gender.equals("some string") 

and it should work fine.

Akash Chandwani
  • 550
  • 1
  • 9
  • 20
1
import java.util.Scanner;

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

System.out.println("What is your gender, male of female?");
    gender = scan.nextLine();


if( gender == "f"||gender =="F"||gender =="female"||gender=="Female"||gender =="FEMALE"){
    System.out.println("A female" );
}else if( gender == "m"||gender =="M"||gender =="male"||gender =="Male"||gender =="MALE")
{
    System.out.println("A male.");
}else{
    System.out.println("Unknown");
}
}
}
niXful-Autistic
  • 217
  • 1
  • 6
  • I would like to print out the statement("A female") if user enter the condition. However the result only would print out the else statement. – SethW Jan 24 '18 at 06:39
  • I have added the "else if " and "else" statements for your condition unless gender.equals("some string") by Akash Chandwani is the recommended string comparison – niXful-Autistic Jan 24 '18 at 06:43
1

try this code

import java.util.Scanner;

public class test
{
 @SuppressWarnings("resource")
 public static void main(String[] args)
 {
    String gender;
    Scanner scan = new Scanner(System.in);

    System.out.println("What is your gender, male or female?");
    gender = scan.nextLine();


    if( gender.equals("f")||gender.equals("F")||gender.equals 
       ("female")||gender.equals("Female")||gender.equals("FEMALE"))
    {
       System.out.println("A female" );
    }

    if( gender.equals("m")||gender.equals("M")||gender.equals         
        ("male")||gender.equals("Male")||gender.equals("MALE"))
    {
       System.out.println("A male.");
    }

 }
}
Thomas
  • 1,445
  • 14
  • 30