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.