¿Y el problema es?
Digo, ¿no esperas que ejecutemos el código mentalmente o si?
Si no nos indicas los resultados es complicado entender lo que te resulta, sin embargo y a simple vista el código es correcto.
Así pues, ¿entonces cual es el problema?
No veo que indiques nada, sólo muestras el código y no más.
PDTA: acabo de hacer la prueba con tu código y funciona perfecto.
Sigo sin entender tu "problema de principiantes".