Opérateurs arithmétiques binaires de base
Utilisés pour des calculs entre deux valeurs numériques, il y a 7 types au total, incluant les quatre opérations classiques, la division entière, le reste et l’opérateur unaire de signe négatif.
| Opérateur | Description du rôle |
|---|---|
+ | Addition |
- | Soustraction |
-expression | Moins unaire (inverse le signe d’un nombre) |
* | Multiplication |
/ | Division classique, le résultat est toujours de type double (flottant) |
~/ | Division entière, supprime la partie décimale et renvoie un int |
% | Modulo (récupère le reste de la division entière) |
La division a une particularité par rapport aux autres langages : l’opérateur / renvoie systématiquement un nombre à virgule. Si vous avez besoin d’un entier utilisez ~/, un point essentiel pour les lecteurs ayant une base en programmation.
Exemple de code :
void main() {
// Vérification addition, soustraction, multiplication, division, division entière et modulo
print(2 + 3 == 5);
print(2 - 3 == -1);
print(2 * 3 == 6);
print(5 / 2 == 2.5); // Division classique renvoie un double décimal
print(5 ~/ 2 == 2); // Division entière ne conserve que la partie entière int
print(5 % 2 == 1); // % ne récupère que le reste de la division entière
// Exemple de concaténation de chaîne avec quotient et reste
print('5/2 = ${5 ~/ 2} r ${5 % 2}' == '5/2 = 2 r 1');
}Langage du code : Dart (dart)
Image du résultat d’exécution

Opérateurs d’incrémentation / décrémentation
Dart prend en charge deux versions préfixe et suffixe pour l’incrémentation ++ et la décrémentation --. La différence majeure : modifier d’abord la variable ou récupérer d’abord sa valeur initiale.
| Opérateur | Logique d’exécution | Valeur renvoyée par l’expression |
|---|---|---|
++var | Ajouter 1 à la variable d’abord, puis utiliser la nouvelle valeur dans le calcul | Nouvelle valeur après incrémentation |
var++ | Utiliser d’abord la valeur initiale de la variable pour le calcul, puis ajouter 1 à la variable à la fin | Valeur initiale avant incrémentation |
--var | Soustraire 1 à la variable d’abord, puis utiliser la nouvelle valeur dans le calcul | Nouvelle valeur après décrémentation |
var-- | Utiliser d’abord la valeur initiale de la variable pour le calcul, puis soustraire 1 à la variable à la fin | Valeur initiale avant décrémentation |
void main() {
int a;
int b;
// 1. Incrémentation préfixe ++a : modifier d'abord, puis affecter
a = 0;
b = ++a;
print(a == b); // a=1, b=1 → true
// 2. Incrémentation suffixe a++ : affecter la valeur initiale d'abord, puis modifier
a = 0;
b = a++;
print(a != b); // a=1, b=0 → true
// 3. Décrémentation préfixe --a : modifier d'abord, puis affecter
a = 0;
b = --a;
print(a == b); // a=-1, b=-1 → true
// 4. Décrémentation suffixe a-- : affecter la valeur initiale d'abord, puis modifier
a = 0;
b = a--;
print(a != b); // a=-1, b=0 → true
}
Langage du code : PHP (php)
Tous les affichages de l’exemple valent true.
Attention : placer ++ ou — en position préfixe ou suffixe change le comportement au sein des expressions.
Lorsqu’ils sont utilisés seuls, exemple :
int a = 1;
++a;
int b = 1;
b++;
print(a);
print(b);Langage du code : PHP (php)
Ce code affiche 2 dans les deux cas.
D:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
2
2
Langage du code : CSS (css)
Il en va de même pour –, la variable sera toujours augmentée ou diminuée d’une unité.
Mais si ++ et — font partie d’une formule mathématique, exemple :
void main() {
int a = 5;
// Suffixe : utiliser d'abord 5 pour le calcul, ensuite a passe à 6
int res1 = a++ * 2;
print(res1); // 10
print(a); // 6
int b= 5;
// Préfixe : modifier d'abord b à 6, puis calculer
int res2 = ++b * 2;
print(res2); // 12
print(b); // 6
}Langage du code : PHP (php)
A et b valent finalement 6 dans les deux cas, mais res1 et res2 ont des résultats différents juste à cause de la position du ++.
Explication du suffixe a++ : d’abord exécuter a*2=10 avec a égal à 5, stocker ce résultat dans res1 puis ajouter 1 à a pour obtenir 6.
Pour le préfixe ++b : d’abord ajouter 1 à b pour qu’il vaille 6, ensuite calculer 6*2=12 affecté à res2.
La ligne int res1 = a++ * 2; se décompose ainsi :
int res1 = a * 2;
a = a +1;
La ligne int res2 = ++b * 2; se décompose ainsi :
b = b+1;
int res2 = b * 2;

Phrase mnémotechnique à retenir :
Préfixe modifie d’abord, suffixe utilise d’abord ;
Le préfixe renvoie la nouvelle valeur, le suffixe la valeur initiale.