while usando repetir que programacion mientras lenguaje for else ejemplos definicion ciclo c while-loop post-increment pre-increment

usando - que es if else en programacion



Incremento de publicación en ciclo while en C (6)

El whie loops es comprobar que las condiciones son verdaderas ejecutadas durante el bloqueo y probar el

las condiciones son falsas terminan el ciclo while.

ver sobre el incremento del post dentro del ciclo while ++

vacío principal()

{

int rmvivek;

clrscr ();

printf ("ënter los valores enteros de 1 a 10");

scanf ("% d", & rmvivek);

while (10> = rmvivek ++)

{

printf ("el valor es =% d / n", rmvivek);

}

getch ();

}

Aquí hay un programa C muy simple:

int main() { int i = 0; while(i++ < 10) printf("%d/n", i); return 0; }

El resultado es:

1 2 3 4 5 6 7 8 9 10

¿Por qué 0 no es el primer número para imprimir? Y si reemplazo el i++ con ++i obtendré esto:

1 2 3 4 5 6 7 8 9

Para i++ y ++i el primer número es 1 .
Esperaba ver el 0 para el incremento del post en el ciclo while while() .
Gracias.


Incrementa i después de verificarlo y antes de imprimirlo. O bien incremente después de verificar e imprimir, o use un ciclo do while while:

int main() { int i = 0; do { printf("%d/n", i); } while(i++ < 10); return 0; }


i++ es post-incremento y ++i es pre-incremento . Incremento posterior significa que el valor anterior se devuelve después de incrementar el objeto. El preincremento significa que el objeto se incrementa y luego se devuelve. De cualquier manera, el objeto se incrementa cuando se evalúa su expresión y es por eso que no obtienes 0 como la primera salida.


Cuando se evalúa el ciclo while while(i++ < 10) está comprobando el valor de i, agregando uno a él y comparando el valor anterior con 10. Cuando lo cambia a while(++i < 10) aumenta el valor de i antes de comparar el nuevo valor a 10.

De cualquier forma, sin embargo, para cuando llegue a la siguiente declaración, ya se ha incrementado.

Si quisiera imprimir de 0 a 9, podría intentarlo

while(i < 10) printf("%d/n", i++);

en lugar. En este caso, el valor de i se incrementa después de proporcionar su valor original a la instrucción printf .


Es porque ya has incrementado el i antes de llamar al comando de impresión.

Por lo tanto, si desea comenzar con la impresión 0 ,

puedes intentar usar esto:

int main() { int i = 0; while(i < 10) printf("%d/n", i++); return 0; }

Entonces lo incrementa después de imprimir; es post-increment

Si lo cambia a ++i como el siguiente, obtendrá 1 desde la primera impresión.
Es pre-increment .

int main() { int i = 0; while(i < 10) printf("%d/n", ++i); return 0; }

Creo que ahora comprenderá el post-increment y el pre-increment .


El i++ (y ++i ) se realiza como parte de la evaluación de la expresión while , que ocurre antes de la impresión. Entonces eso significa que siempre imprimirá 1 inicialmente.

La única diferencia entre las variantes i++ y ++i es cuando el incremento ocurre dentro de la expresión misma, y ​​esto afecta el valor final impreso. El pseudocódigo equivalente para cada uno es:

while(i++ < 10) while i < 10: i = i + 1 printf("%d/n", i); print i i = i + 1

y:

i = i + 1 while(++i < 10) while i < 10: printf("%d/n", i); print i i = i + 1

Digamos que tengo hasta 9 . Con i++ < 10 , usa 9 < 10 para la expresión while luego aumenta de i a 10 antes de imprimir. Entonces el cheque usa 9 y luego imprime 10.

Con ++i < 10 , primero se incrementa i luego usa 10 < 10 para la expresión while . Entonces el cheque usa 10 y no imprime nada, porque el ciclo ha salido debido a esa comprobación.