Ah, die = vs == Falle wieder
Leider ist if(bedingung = true) gültiger Code, da Zuweisungen immer den rvalue (d.h. hier das rechts vom = steht) zurückgeben. Das heißt man du weißt der Variable 0 oder 1 zu, und gibst diesen Wert zurück, auf den dann if abfragt.
Dadurch kann man dann auch unleserlichen Code wie das hier schreiben:
int i = j = k = 2;