Arithmetic operators

Dart supports the usual arithmetic operators, as shown in the following table.

Operator Meaning
+ Add
– Subtract
-expr Unary minus, also known as negation (reverse the sign of the expression)
* Multiply
/ Divide
~/ Divide, returning an integer result
% Get the remainder of an integer division (modulo)

Example:

1. assert(2 + 3 == 5);
2. assert(2 - 3 == -1);
3. assert(2 * 3 == 6);
4. assert(5 / 2 == 2.5); // Result is a double
5. assert(5 ~/ 2 == 2); // Result is an int
6. assert(5 % 2 == 1); // Remainder

8. assert('5/2 = ${5 ~/ 2} r ${5 % 2}' == '5/2 = 2 r 1');

Dart also supports both prefix and postfix increment and decrementoperators.

Operator Meaning
++var var = var + 1 (expression value is var + 1)
var++ var = var + 1 (expression value is var)
—var var = var – 1 (expression value is var – 1)
var— var = var – 1 (expression value is var)

Example:

1. var a, b;

3. a = 0;
4. b = ++a; // Increment a before b gets its value.
5. assert(a == b); // 1 == 1

7. a = 0;
8. b = a++; // Increment a AFTER b gets its value.
9. assert(a != b); // 1 != 0

11. a = 0;
12. b = --a; // Decrement a before b gets its value.
13. assert(a == b); // -1 == -1

15. a = 0;
16. b = a--; // Decrement a AFTER b gets its value.
17. assert(a != b); // -1 != 0