unexpected results from simple timing loop need explaination

Hi!

I have a simple timing loop that prints the numbers 1-12 every 250ms then starts over. Perfect. But when I add the last three commented out lines of an If statement the loop just stops at three. Why is that?
Thank you so much.

int i = 0;

unsigned long previousMillis = 0;

const long interval = 250;

void setup() {
  Serial.begin(9600);
}

void loop() {

  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if (i >= 12) {
      i = 1;
    }
    else {
      i = i + 1;
    }
    Serial.println(i);
    //if (i = 2) {
    //  Serial.print("even");
    //}
  }
}
if (i = 2)

Whoops. This sets i to 2

Bob does it set it to 2 or look to see if it is 2 (???) I want to say when the count is the number two print "even"...

Using = will set the variable to 2
Using == will compare the variable with 2

Very basic C

Thank you Bob!!