MuadDib hat Recht.
Der Code [...] würde immer (!) ausgeführt werden. Denn = ist der Zuweisungs- und nicht der Vergleichsoperator. Zurückgeben tut er den neuen Wert der Variable. zahl=1 ergibt also 1, was true entspricht. Genauso würde if(zahl=2) immer ausgeführt werden. if(zahl=0) dagegen nicht. Denn das ergäbe 0, was wiederum false entspricht.
Das was du willst ist ==. if(zahl==1) ergibt nur true wenn zahl wirklich 1 ist.