• Aucun résultat trouvé

Comment créer des variables en C++ ?

Dans le document La programmation en C++ moderne (Page 46-51)

Contenu masqué n°1

II.4.2. Les variables

II.4.2.1. Comment créer des variables en C++ ?

Pour déclarer une variable en C++, il faut trois éléments obligatoires.

— D’abord, un type, qui indique ce que la variable va stocker (un entier, une chaîne de caractères, etc).

— Ensuite, unidentificateur, c’est-à-dire le nom associé à la variable.

— Enfin, il faut bien donner une valeur à stocker à notre variable. Ceci se fait en mettant cette valeur entre accolades { }.

Examinons un cas réel que nous détaillerons.

1 #include <iostream>

2 #include <string>

34 int main() 5 {

6 int reponse { 42 };

7 std::cout << "La réponse à la Grande Question est " << reponse

<< std::endl;

89 double pi { 3.1415926 };

10 std::cout << "Voici la valeur du célèbre nombre pi : " << pi <<

std::endl;

1112 char lettre { 'A' };

13 std::cout << "La première lettre de l'alphabet français est "

<< lettre << std::endl;

14

15 std::string phrase { "Bonjour tout le monde !" };

16 std::cout << "En entrant dans la salle, il s'écria : " <<

phrase << std::endl;

1718 return 0;

19 }

1 La réponse à la Grande Question est 42

2 Voici la valeur du célèbre nombre pi : 3.14159 3 La première lettre de l'alphabet français est A

4 En entrant dans la salle, il s'écria : Bonjour tout le monde !

i

Syntaxe héritée

Il existe une syntaxe alternative, de la formetype identificateur = valeur;. Essayez, vous verrez que ça marche.

1 #include <iostream>

23 int main() 4 {

5 int variable = 42;

6 std::cout << variable << std::endl;

78 return 0;

9 }

Cette syntaxe est héritée du C. Elle est toujours valable en C++, ne soyez donc pas surpris si vous la voyez un jour dans des codes divers. Dans ce cours, nous utiliserons la forme dite «moderne» utilisant les accolades {}.

II.4.2.1.1. C’est tout à fait mon type

Les plus attentifs ont remarqué que l’on retrouve les mêmes littéraux que dans la section précédente.

— Pour les nombres entiers, nous avons le mot-cléint, abréviation de l’anglaisinteger signifiant … nombre entier. Grâce à ce type, on peut stocker des entiers négatifs ou positifs.

— Pour les flottants, les nombres à virgule, nous avons le mot-clé double, qui permet de stocker des nombres réels très grands.

— Pour les caractères simples, nous avons char, qui est tellement transparent que je ne vous ferai pas l’affront de le traduire.

— Enfin, pour les chaînes de caractères, nous avons le type std::string. Ce type est un peu particulier car il n’existe pas nativement en C++. Ce sont des programmeurs experts qui l’ont codé afin de manipuler aisément des chaînes de caractères. Afin de pouvoir manipuler des std::string, il faut donc inclure le bon fichier, ce que l’on fait grâce à la ligne #include <string>.

II.4.2.1.2. Quel est ton nom, petite variable ?

D’autre, puristes de la langue française, auront remarqué qu’il manque l’accent aigu dans l’identificateurreponse. Ce n’est pas un oubli de ma part. Si je suis obligé de faire cette entorse à notre belle langue, c’est parce queC++ m’y force. Étant un langage inventé aux États-Unis dans les années 1980, C++ n’autorise que les 26 lettres composant l’alphabet anglais (plus les chiffres et l’underscore _), à savoir donc les mêmes que les nôtres, accents non compris.

Dans la réalité, les programmeurs utilisent l’anglais pour nommer leurs variables, ce n’est donc pas un problème.

i

Langue du cours

Je n’utilise le français que dans le cadre de votre apprentissage. Quand vous aurez plus d’expérience, je vous encouragerai à utiliser l’anglais.

Mais que ce soit en anglais ou en français, un identificateur doit respecter des règles bien précises.

— Il doit commencer par une lettre. Il ne peut pas commencer par un chiffre, c’est interdit. Il ne doit pas commencer non plus par un underscore _: leur utilisation répond à des règles précises, donc il est plus simple de ne pas les employer comme premier caractère.

— Les espaces et les signes de ponctuation sont interdits (', ?, etc).

— On ne peut pas utiliser un mot-clé du langage comme identificateur. Ainsi, il est interdit de déclarer une variable s’appelant int ou return, par exemple.

1 #include <iostream>

2

3 int main() 4 {

5 // Bon exemple.

6 int avec_underscore { 0 };

7 // Erreur : espace interdit.

8 int avec espace { 0 };

9

10 // Bon exemple.

11 int variable1 { 42 };

12 // Erreur : ne peut pas commencer par un chiffre.

13 int 1variable { 42 };

1415 // Bon exemple.

16 char lettre { 'A' };

17 // Erreur : ponctuation interdite.

18 char autre_lettre! { 'B' };

1920 // Bon exemple.

II.4.2.1.3. De l’importance d’un beau nom

Donner un nom clair et précis à une variable est un grand défi auquel sont confrontés même

imposées par C++, cela ne veut pas dire que la variable est bien nommée.

— variable: ne veut rien dire. Que stocke-t-elle? Quel est son but? Pourquoi existe-t-elle?

— variable_contenant_la_multiplication_de_pi_par_e_au_cube: beaucoup trop long.

— cIrCoNfErEnCe_CeRcLe: le nom définit bien le pourquoi de l’existence de notre variable, mais le mélange majuscule / minuscule le rend illisible.

— Brzęczyszczykiewicz: aucun sens, sauf si vous aimez l’humour polonais .

Avec le temps, en progressant, vous arriverez à trouver plus rapidement et plus facilement des identificateurs qui soient clairs et simples. Dans le cours, je m’efforcerai de le faire afin de vous donner des exemples concrets.

II.4.2.1.4. Sinon, par défaut…

Abordons un dernier point. Je vous ai dit qu’on donne une valeur entre accolades pour initialiser notre variable. Mais que se passe-t-il si on écrit simplement les accolades, sans aucune valeur dedans? Le code va-t-il toujours compiler?

1 #include <iostream>

7 std::cout << "Mon entier vaut " << entier << std::endl;

89 double reel {};

10 std::cout << "Mon réel vaut " << reel << std::endl;

1112 char lettre {};

13 std::cout << "Mon caractère vaut " << lettre << std::endl;

1415 std::string phrase {};

16 std::cout << "Ma chaîne vaut " << phrase << std::endl;

1718 return 0;

19 }

1 Mon entier vaut 0 2 Mon réel vaut 0 3 Mon caractère vaut 4 Ma chaîne vaut

Non, le programme n’a pas de bugs, il fonctionne très bien. En fait, si aucune valeur n’est spécifiée, nos variables sont initialisées à une valeur par défaut. Pour les entiers et les réels,

il s’agit de zéro. Pour les caractères, c’est une valeur spéciale signifiant «pas de caractère», de même que pour les chaînes de caractères, initialisées avec du vide.

i

À vous de choisir

C++ vous laisse libre de vos choix. Dans ce cours, pour commencer, nous écrirons toujours les valeurs explicitement. Au fur et à mesure que vous progresserez, nous utiliserons de plus en plus souvent l’initialisation par défaut.

Dans le document La programmation en C++ moderne (Page 46-51)