Цикл продолжается при невыполнении условий

Уже долго вожусь, но никак не могу понять, почему при вводе "exit" цикл while продолжает работу:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    Stack<String> st = new Stack<String>();

    Boolean zh =true;
    while(st.empty() || st.peek() !="exit"){
        String N = "";
        N = in.nextLine();
        st = checkNdo(N, st);
    }    
}

public static Stack<String> checkNdo(String str, Stack<String> stack1){
    Stack<String> stack = new Stack<String>();
    String[] arr1 = str.split(" ");
    String str1 = arr1[0];

    switch(str1) {
    case "push":
        stack.push(arr1[1]);
        break;
    default:
        stack.push(arr1[0]);
        break;
    }
    return stack;
}

Ответы (0 шт):