Confondre entre l'égalité et l'affectation n'est pas rare chez les nouveaux étudiants de la branche. Heureusement, cette confusion finit par disparaître au bout de quelques exercices; mais, des fois, elle persiste.
La cause principale de cette confusion est le lien avec les mathématiques. Cette même cause sera le remède. Le signe utilisé "=", est souvent utilisé pour désigner l'égalité. Mais, en revoyant les maths, est-il vraiment le cas ?
Oublions l'informatique, et revenons vers les math. Le signe "=" est utilisé dans deux types de phrase et n'est jamais mis seul, sans explications.
0 ... si n = 1
Dans cette définition (d'une suite), on voit que nous ne connaissons pas la valeur de n, alors on donne les différentes possibilités selon la valeur de n. Cette valeur c'est à "l'utilisateur" de fournir plus tard. Dans ce cas aussi, le signe "=" ne peut pas être vu sans le "si" qui le précède.
En algorithmique (ou en programmation si vous voulez), c'est exactement la même chose :
La cause principale de cette confusion est le lien avec les mathématiques. Cette même cause sera le remède. Le signe utilisé "=", est souvent utilisé pour désigner l'égalité. Mais, en revoyant les maths, est-il vraiment le cas ?
Oublions l'informatique, et revenons vers les math. Le signe "=" est utilisé dans deux types de phrase et n'est jamais mis seul, sans explications.
Le premier type de phrases est du genre :
- x ∈ N ... (un peu plus loins)... Supposons que x = 1.
- x ∈ N ... (un peu plus loins)... On met x = 1.
Le deuxième type de phrase est du genre :
U(n) = U(n - 1) + 5 .... si n > 10 ... si n = 1
Dans cette définition (d'une suite), on voit que nous ne connaissons pas la valeur de n, alors on donne les différentes possibilités selon la valeur de n. Cette valeur c'est à "l'utilisateur" de fournir plus tard. Dans ce cas aussi, le signe "=" ne peut pas être vu sans le "si" qui le précède.
En algorithmique (ou en programmation si vous voulez), c'est exactement la même chose :
- Des fois, on connaît la valeur de notre variable et on veut la préciser à notre programme. Là, il s'agit de l'affectation.
- Des fois, on ne connaît pas la valeur de la variable au moment de l'écriture du programme; elle sera donnée par l'utilisateur via le clavier, lue à partir d'un fichier ou récupérée depuis Internet, peu importe sa source, l'essentiel c'est qu'on ne connaît pas cette valeur. Ainsi, on demande au programme de vérifier si elles est égale à telle ou telle valeur. Là, il s'agit de la comparaison.
En pascal :
a := 4 { définir la valeur de la variable a, affectation } a = 4 { vérification si la variable a est égale à la valeur, égalité }
En Java :
a = 4 // Définir la valeur de la variable a, affectation a == 4 // Vérifier si la variable a est égale à la valeur précisée, égalité