La

else

che hai scritto alla fine, si riferisce solamente alla if piu' vicina (quindi a quella che paragona il valore a "3").

Quindi, per tutti i valori diversi da "3" viene comunque eseguita ...