-2

When I enter "helloworld" as username the program returns username is incorrect. I could not understand what my problem is.

import java.util.Scanner;

public class Main {
    
    public static void main (String[] args) {
        
        String userName, sys_userName = "helloworld";
        int passWord, sys_passWord = 12345;
        
        Scanner scan = new Scanner (System.in); 
        
        System.out.println("Enter username: ");
        userName = scan.nextLine();
        
        System.out.println("Enter password: ");
        passWord = scan.nextInt();
        
        if ((userName == sys_userName) && (passWord == sys_passWord)) {
            
            System.out.println("Welcome!");
        }
        
        else if ((userName != sys_userName) && (passWord == sys_passWord)) {
            
            System.out.println("Username is incorrect!");
        }
        
        else if ((userName == sys_userName) && (passWord != sys_passWord)) {
            
            System.out.println("Password is incorrect!");
        }
        
        else if ((userName != sys_userName) && (passWord != sys_passWord)) {
            
            System.out.println("All infos are incorrect!");
            
        }
    }
}
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197

1 Answers1

1

For comparison of values within objects you need to use .equals() method. By comparing == within objects Java compares memory addresses.

So the solution for you replace == with .equals().

if ((sys_userName.equals(username)) && (passWord == sys_passWord)) {
    System.out.println("Welcome!");
}

The same for the other if branches.

Ruslan
  • 60
  • 1
  • 7