So I was coding a simple game where the computer guesses a number you are thinking of between 1 and 1000. The code is as follows hwoever whenever I run this, no matter what i tell the computer wether i say higher or lower, it never updates the minimum and maximum to narrow in on the answer, ye the logic looks correct to me. :
package com.company;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        //set and initialize variables
        int currentGuess;
        int min = 0;
        int max = 1000;
        boolean guessedCorrectly = false;
        String userInput;
        Random rand = new Random();
        //Create user input object
        Scanner user_input = new Scanner(System.in);
        //Explain Game Rules to User
        System.out.println("Please think of a number and I will try to guess it.");
        System.out.println("You can respond h for higher, l for lower, and c for correct: ");
        //Main Game Loop
        while (guessedCorrectly == false){
            currentGuess = min + rand.nextInt(max - min + 1);
            System.out.print("Is your number " + currentGuess);
            userInput = user_input.next();
            if (userInput == "h"){
                min = currentGuess;
            }else if (userInput =="l"){
                max = currentGuess;
            }else if (userInput == "c"){
                guessedCorrectly = true;
            }else{
                System.out.println("Please enter an h for higher, l for lower, or c for correct ");
            }
        }
        System.out.println("Congratulations to MEEEEEE, I guessed it correctly!");
    }
}
Any Ideas?
 
    