以前の質問の意図を簡略化するために改めて書いたコードですTimerTaskを使い制御するのでbreakなどの制御文は使えないです。何故Lをfalseにしてるのに終わらないのですか?

public class Main  {

    public static void main(String[] args)  {
        boolean K = true;
        boolean L = true;

        while(and(K,L)){
            System.out.println("test");
            L = false;
        }
    }

    public static boolean and(boolean a, boolean b){
        if(a = true){
            if(b = true){
                return true;
            }
        }
        return false;
    }

}