Cómo utilizar la función de incremento automático / autodecremento en c ++

Video: 12 - Tutorial de C++ en español - Funciones tipo (int, string, void, bool)

los programadores de C ++ muy a menudo usan el incremento automático ++ o el autodecremento - - operadores con los lazos que cuentan algo. Tener al utilizar el siguiente fragmento extraído de la WhileDemo ejemplo que el programa decrementa la cuenta de bucle mediante el uso de sentencias de asignación y resta, como este:

Video: 82. Programación en C - Memoria Dinámica - Uso de malloc en C

// ahora bucle que muchos timeswhile (nLoopCount gt; 0) {nLoopCount = nLoopCount - 1-cout lt; lt; "Solamente " lt; lt; nLoopCountlt; lt; " bucles de ir" lt; lt; endl-}

Una versión más compacta utiliza el autodecremento característica, que hace lo que bien puede imaginar:

Video: Curso Lenguaje C - Capitulo 12 - Funciones

while (nLoopCount gt; 0) {nLoopCount --- cout lt; lt; "Solamente " lt; lt; nLoopCountlt; lt; " bucles de ir" lt; lt; endl-}

La lógica en esta versión es el mismo que en el original. La única diferencia es la forma en que nLoopCount se decrementa.

Debido a que el autodecremento tanto disminuye su argumento y devuelve su valor, la operación de reducción se puede combinar con el mientras lazo. En particular, la versión siguiente es el bucle más pequeño aún:

while (nLoopCount-- gt; 0) {cout lt; lt; "Solamente " lt; lt; nLoopCountlt; lt; " bucles de ir" lt; lt; endl-}

Por extraño que parezca, nLoopcount- gt; 0 es la versión que la mayoría de los programadores de C ++ usarían. No es que los programadores de C ++ como ser lindo (aunque lo hacen). De hecho, la versión más compacta (que incorpora la función de incremento automático o autodecremento en la comparación lógica) es más fácil de leer, especialmente a medida que adquiera experiencia.

Video: Funcion strstr | Programacion en C

Ambos nLoopCount- y -nLoopCount expresiones decremento nLoopCount. La expresión anterior, sin embargo, devuelve el valor de nLoopCount antes de ser decremented- esta última expresión lo hace después de haber disminuido.

¿Con qué frecuencia la versión de autodecremento WhileDemo ejecutar cuando el usuario entra en un bucle de recuento de 1? Si se utiliza la versión pre-decremento, el valor de -nLoopCount es 0, y el cuerpo del bucle nunca entró. Con la versión post-decremento, el valor de nLoopCount es 1, y el control entra en el bucle.

Cuidado con pensar que la versión del programa con el comando autodecremento se ejecuta más rápido que la simple “- 1” versión (ya que contiene un menor número de declaraciones). Es probable que ejecuta exactamente la misma. compiladores modernos son buenos en conseguir el número de instrucciones en lenguaje de máquina a un mínimo, no importa cuál de las instrucciones que se muestran aquí decremento que realmente utiliza.

Artículos Relacionados