GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de programmation Linux C Partie 12 - Opérateurs d'affectation et expressions conditionnelles

Dans cette série de didacticiels de programmation C en cours, nous avons déjà abordé certains éléments de base tels que les opérateurs arithmétiques, logiques et relationnels, ainsi que les boucles conditionnelles telles que "if" et "while". De plus, ce didacticiel se concentrera sur les opérateurs d'affectation (autres que =) et les expressions conditionnelles.

Commençons par les opérateurs d'affectation. Si vous avez créé des programmes C de base jusqu'à présent (ce que j'en suis sûr, surtout après avoir suivi notre série de tutoriels), il y a de fortes chances que vous ayez fait quelque chose de similaire à ce qui suit :

a = a + 1;

N'est-ce pas ?

La nouvelle chose que nous allons apprendre aujourd'hui est que vous pouvez réécrire cette expression comme suit :

a += 1;

Oui, le  +=est un opérateur et est également appelé opérateur d'affectation.

Maintenant, si je dis que l'utilisation d'opérateurs d'affectation comme ceux-ci rend le code plus compact et lisible, certains d'entre vous peuvent dire que dans le contexte de l'exemple que nous avons utilisé, un opérateur d'incrémentation aurait été tout aussi bon car cela garantit également que la valeur de 'a ' est augmenté de 1.

a++;

Je suis d'accord, mais pensez à d'autres scénarios comme celui-ci :

b = b + 10;
b = b + c

Dans ces cas, l'utilisation de l'opérateur d'affectation facilite définitivement l'écriture, la lecture et la révision du code en une seule étape.

Toujours pas convaincu ? Peut-être que l'exemple générique suivant vous donnera une idée encore meilleure de la valeur des opérateurs d'affectation. Jetez un œil :

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] = arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] + 5 

Cette ligne de code prend du temps à être comprise précisément car il faut s'assurer que les deux tableaux (de chaque côté de l'opérateur =) font référence ou non à la même valeur. Dans ce cas, ils le font, donc une meilleure façon serait d'utiliser un opérateur d'affectation de la manière suivante :

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] += 5;

Ainsi, l'utilisation d'un opérateur d'affectation dans ce cas a non seulement rendu la ligne très facile à comprendre, mais l'a également rendue plus conviviale pour le compilateur dans le sens où cela peut aider le compilateur à produire un code efficace.

Maintenant que vous êtes convaincu (je l'espère vraiment) du fait que les opérateurs d'affectation sont utiles, voici une liste d'opérateurs qui ont un opérateur binaire correspondant :

+ - * / % << >> & ^ |

Les cinq premiers opérateurs de la liste dont nous avons déjà parlé dans nos tutoriels jusqu'à présent. Les cinq derniers sont des opérateurs au niveau du bit, et nous en discuterons dans l'un de nos prochains didacticiels. En attendant, voici une référence rapide aux opérateurs d'affectation correspondant à certains de ces opérateurs :

a += b;
a -= b;
a *= b;
a /= b;
a %= b;

Donc, en général, vous pouvez garder à l'esprit que :

expression1 = (expression1) op (expression2)

peut être exprimé comme :

expression1 op= expression2

où 'op' est l'opérateur utilisé, comme +, -, *, etc.

Veuillez noter que l'expression suivante ainsi que les expressions similaires :

a *= b - c 

se développera comme :

a = a * (b-c)

J'espère avoir été en mesure de clarifier le concept d'opérateurs d'affectation, au moins au niveau de base. Passons maintenant à une discussion rapide sur les expressions conditionnelles.

Prenons l'exemple suivant :

if(a==b)
c = c + 1;
else
c = c - 1;

Les expressions conditionnelles vous aident à écrire des logiques comme celles-ci sur une seule ligne. Voici comment :

c = (a==b) ? (c+1) : (c -1)

Donc ici, d'abord la condition (a==b) est vérifiée. Si c'est vrai, alors (c+1) est assigné à c, sinon (c-1) est assigné à c. Voici un exemple de code pour clarifier les choses :

int main()
{
int a = 6, b = 5, c = 9;

c = (a==b) ? (c+1) : (c -1) ;

printf("\n %d \n", c);

return 0;
}

Puisque a n'est pas égal à b ici, donc c est assigné (c-1), ce qui signifie que la nouvelle valeur de c devient 8. Juste au cas où vous en auriez besoin, voici la forme générique des expressions conditionnelles :

expression1 ? expression2 : expression3

J'espère que vous avez une idée de base sur les opérateurs d'affectation et les expressions conditionnelles. Vous êtes maintenant encouragé à les utiliser dans vos activités de codage quotidiennes, et si vous rencontrez un problème quelconque, n'oubliez pas de nous laisser un commentaire ici.


Linux
  1. Tutoriel de programmation en C 4 - Variables et mémoire

  2. Tutoriel de programmation en C Partie 3 - Notions de base sur les variables

  3. Tutoriel de programmation en C Partie 5 - Variables de caractères

  4. Tutoriel de programmation Linux C Partie 10 - Portées variables

  5. Tutoriel de programmation Linux C Partie 9 :Chaînes

5 trucs et astuces intéressants en ligne de commande sous Linux - Partie 1

Comment comparer et fusionner des fichiers texte sous Linux (partie 2)

Tutoriel de programmation Linux C Partie 15 - Complément 2s et nombres négatifs

Tutoriel de programmation Linux C Partie 18 :Fonctions récursives

Comment installer et utiliser KompoZer sous Linux - Tutoriel

Comment installer et utiliser Kerkythea sous Linux - Tutoriel