Opérateurs arithmétiques Dart

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érateurDescription du rôle
+Addition
-Soustraction
-expressionMoins 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érateurLogique d’exécutionValeur renvoyée par l’expression
++varAjouter 1 à la variable d’abord, puis utiliser la nouvelle valeur dans le calculNouvelle valeur après incrémentation
var++Utiliser d’abord la valeur initiale de la variable pour le calcul, puis ajouter 1 à la variable à la finValeur initiale avant incrémentation
--varSoustraire 1 à la variable d’abord, puis utiliser la nouvelle valeur dans le calculNouvelle 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 finValeur 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.