Pfv Alguem me explica o porque que esse while não muda!

Eu sou iniciante e não consigo entender o porque do meu codigo não funcionar! pfv algum abençoado me explica o pq disso não funcionar!
(o problema é que mesmo mudando a variavel o ciclo while não para)tem umas coisas que eu ainda não usei comoas variaveis em cima mas eu vou (ou iria) usar
aqui está o código:

import java.util.Scanner;

public class Calculations {

public static void main(String[] args) {
	
		
		int FlourAmount ;
		int FlourMin = 1000; //grams
		int EggsAmount ;
		int EggsMin = 1 ; 
		int MilkAmount ;
		int MilkMin = 500; //miligrams
		int ButterAmount ;
		String Yes = null;
		String UserName = null;
		//constructor
		
		System.out.println("Olá !" + System.lineSeparator() + "Iniciando CakeMaker2000..");
		Scanner UserImput;
		
		
		//O BAGUIO TA DOIDO
		
		System.out.println("Tudo Pronto !");
		while (Yes != "S") {
		
			System.out.println("Quem é você ?");
			UserImput = new Scanner(System.in);
			UserName = UserImput.nextLine();
		
		System.out.println("Seu nome é " + UserName +"?" + System.lineSeparator() + "Responda com apenas S ou N maisculos !" );
		UserImput = new Scanner(System.in);
		Yes = UserImput.nextLine();
		}
		
		System.out.println("Deu Certo!!!!!"); 
		
}}

Comparação de strings deve ser feita com o método equals:

!Yes.equals("S")

ou, como boa prática (para evitar nullpointerexception, dependendo do cenário):

!"S".equals(Yes) // ou "equalsIgnoreCase" em vez de "equals" para não diferenciar "S" de "s"

Continuando a discussão do Pfv Alguem me explica o porque que esse while não muda!: