Tecnicamente è corretto. Toglierei però il test per >=3 dal else, perché sono due cose separate.