En el primero, la variable contador va aumentando su valor de a 1, ya que estás diciéndole contador = contador + 1
En el segundo la variable contador aumenta de 2 en 2, por ende se imprimen los números pares.
La manera correcta en el primer caso hubiera sido contador+=2 o contador = contador + 2 , como en el segundo.
Hola. En el primer código comienzas con contador=2
y entras al bucle while
, después imprimes la variable contador
, que es un número, más dos, otro número. Ese es un error pues no tomas en cuenta el primer numero par que es 2 y directamente imprimes el siguiente (4) ya que a contador le estas sumando 2 y la variable contador comienza en dos. Otro error, el más importante, ocurre porque después de hacer la impresión le sumas uno a tu variable contador. Al ejecutar contador++
(que es equivalente a contador=contador+1
) lo que haces es sumarle una unidad a la variable contador por lo que en la siguiente repetición del bucle valdrá 3 y entonces entras de nuevo e imprimes contador (que en este punto es igual a 3) más el número dos por eso obtienes 5 como resultado pues le estas diciendo que imprima el valor de contador +2. Después de la impresión se vuelve a ejecutar contador++
y tu variable pasa a valer 4, después imprimes la suma 4 + 2 y así sucesivamente hasta que contador valga 101. Eso hace que lo que realmente haga el bucle sea imprimir todos los números del 4 al 102 debido a la suma de una unidad que aplicas con contador++
En el segundo código no sucede lo mismo porque contador inicia también valiendo dos pero al llamar a la función imprimir
solo imprime el valor de la variable sin sumarle nada y una vez impresa ahora sí le suma dos a tu variable con la línea contador=contador+2
haciendo que esta valga 4, después 6, 8, 10, 12, 14, ... ,96, 98, 100.