Comment utiliser la fonction auto-incrémentation / de autodecrement en C ++

Les programmeurs C utilisent de très souvent le autoincrement ++ ou l'autodecrement - - opérateurs avec des boucles qui comptent quelque chose. Avis de l'extrait suivant extrait de la WhileDemo par exemple que le programme décrémente le nombre de boucle en utilisant les instructions d'affectation et de soustraction, comme ceci:

// Boucle maintenant que beaucoup timeswhile (nLoopCount> 0) {nLoopCount = nLoopCount - 1-cout lt; lt; "Seulement" lt; lt; nLoopCountlt; lt; "Boucles d'aller" lt; lt; endl-}

Une version plus compacte utilise le autodecrement fonctionnalité, qui fait ce que vous pouvez imaginer:

while (nLoopCount> 0) {cout nLoopCount --- lt; lt; "Seulement" lt; lt; nLoopCountlt; lt; "Boucles d'aller" lt; lt; endl-}



La logique de cette version est la même que dans l'original. La seule différence est la façon dont nLoopCount est décrémenté.

Parce que le autodecrement fois décrémente son argument et retourne sa valeur, l'opération de décrémentation peut être combinée avec le tandis que boucle. En particulier, la version suivante est la plus petite boucle encore:

while (nLoopCount--> 0) {cout lt; lt; "Seulement" lt; lt; nLoopCountlt; lt; "Boucles d'aller" lt; lt; endl-}

Crois le ou pas, nLoopcount--> 0 est la version que la plupart des programmeurs C ++ utilisent. Il est pas que les programmeurs C ++ comme étant mignon (même si ils le font). En fait, la version plus compacte (qui intègre la fonctionnalité d'auto-incrémentation ou autodecrement dans la comparaison logique) est plus facile à lire, surtout que vous gagnerez de l'expérience.

Les deux nLoopCount-- et --nLoopCount expressions décrément nLoopCount. La première expression, cependant, retourne la valeur de nLoopCount avant d'être decremented- cette dernière expression le fait après avoir été décrémenté.

Combien de fois dois la version de autodecrement WhileDemo exécuter lorsque l'utilisateur entre un nombre de boucles de 1? Si vous utilisez la version pré-réduction, la valeur de --nLoopCount est égal à 0, et le corps de la boucle est jamais entré. Avec la version post-réduction, la valeur de nLoopCount est 1, et entre dans la boucle de contrôle.

Méfiez-vous de penser que la version du programme avec la commande autodecrement exécute plus rapidement que la simple “ - 1 ” Version (car il contient moins de déclarations). Il exécute sans doute exactement le même. Compilateurs modernes sont bons pour obtenir le nombre d'instructions en langage machine à un minimum, peu importe lequel des instructions de décrémentation présentés ici que vous utilisez réellement.


» » » » Comment utiliser la fonction auto-incrémentation / de autodecrement en C ++