Arithmetic Assignment Operators

These operators perform arithmetic operations and then assign the result to the left-hand operand. Solidity supports the following arithmetic assignment operators:

Operator Denotation Description
Addition Assignment += Adds the right-hand operand to the left-hand operand and assigns the result to the left-hand operand.
Subtraction Assignment -= Subtracts the right-hand operand from the left-hand operand and assigns the result to the left-hand operand.
Multiplication Assignment *= Multiplies the right-hand operand by the left-hand operand and assigns the result to the left-hand operand.
Division Assignment /= Divides the left-hand operand by the right-hand operand and assigns the result to the left-hand operand.
Modulus Assignment  %=  Calculates the modulus (remainder) after dividing the left-hand operand by the right-hand operand and assigns the result to the left-hand operand.

Example:

uint a = 10;

a += 5; // a = a + 5 => a = 15

a -= 3; // a = a – 3 => a = 12

a *= 2; // a = a * 2 => a = 24

a /= 4; // a = a / 4 => a = 6

a %= 5; // a = a % 5 => a = 1

Note: Solidity does not support increment (++) and decrement (–) operators, which are common in other programming languages.

Below is the Solidity program to implement Arithmetic Assignment Operators:

Solidity




// Solidity program to implement 
// Arithmetic Assignment Operators
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
  
contract AssignmentOperators {
    
  function arithmeticAssignment() public pure returns (uint, uint, 
                                                       uint, uint, uint) 
  {
    // Addition assignment (+=)
    uint a = 5;
      
    // a is now equal to 8 (5 + 3)
    a += 3;
      
    // Subtraction assignment (-=)
    uint b = 10;
      
    // b is now equal to 6 (10 - 4)
    b -= 4;
      
    // Multiplication assignment (*=)
    uint c = 6;
      
    // c is now equal to 12 (6 * 2)
    c *= 2;
      
    // Division assignment (/=)
    uint d = 25;
      
    // d is now equal to 5 (25 / 5)
    d /= 5;
      
    // Modulus assignment (%=)
    uint e = 27;
      
    // e is now equal to 7 (27 % 10)
    e %= 10;
      
    return (a, b, c, d, e);
  }
}


Output:

 

Solidity – Assignment Operators

Solidity is a high-level, statically-typed programming language for Ethereum smart contracts. Python, JavaScript, and C++ impact it. Solidity has several variable and value assignment operators. Solidity supports the following types of operators:

  1. Simple Assignment Operator.
  2. Arithmetic Assignment Operator.
  3. Bitwise Assignment Operator.

Similar Reads

Simple Assignment Operator

The simple assignment operator(=) assigns the value of the right-hand operand to the left-hand operand....

Arithmetic Assignment Operators

...

Bitwise Assignment Operators

These operators perform arithmetic operations and then assign the result to the left-hand operand. Solidity supports the following arithmetic assignment operators:...