class Sample{
    static boolean b;
    public static void main(String[] args){
       int x = 0;
if (b) {
  x = 1;
} else if(b = false) {
x = 2;
} else if(b) {
x = 3;
} else {
x = 4;
}
System.out.println("x = " + x);
   }
}


「if(b = false)」のところでbの初期値であるfalseと一致し、
「x = 2」と出ると思っていたのですが、
実行すると「x = 4」と表示されます。
何故そうなるかご教授願いたいのです。