Day 12. Basic Syntax of Solidity – Control Structures –

In Solidity, like in other programming languages, control structures such as if statements and for loops are used. These allow execution of specific code based on certain conditions. Solidity supports control structures like if, else, while, do, for, break, continue, and return, similar to C language.

目次

Conditional Branching

Using if statements, else if statements, and else statements, different blocks of code can be executed based on conditions.

In the following example, the isOddNumber function checks whether an input value is odd or even. The expression number % 2 signifies the remainder when ‘number’ is divided by 2. The condition following if checks if the remainder is 0, meaning the code following ‘if’ is executed if the remainder is 0. The code following else is executed if the condition is not met.

Solidity
function isOddNumber(uint256 number) public view returns (bool) {
  bool isOdd = false;
  if (number % 2 == 0) {
    isOdd = false;
  } else {
    isOdd = true;
  }
  return isOdd;
}

Loops

for loops and while loops are used to repeatedly execute code as long as certain conditions are met or for a specific number of times.

The sumUp function in the next example calculates the total sum from 0 to 9. It increments i sequentially, starting from 0 to less than 10, adding it to sum.

  • uint256 i = 0: Assigns 0 to i, starting from 0
  • i < 10: As long as i is less than 10
  • i++: Increment i by 1 after executing the code in the for loop (until condition 2 is no longer satisfied)
Solidity
function sumUp() public pure returns (uint256) {
  uint256 sum = 0;
  for (uint256 i = 0; i < 10; i++) {
    sum += i;
  }
  return sum;
}

The following example is a reference from Day 11. In this example, a for loop is used within the withdraw function. As long as i is less than s_funders.length array (the number of elements in ‘s_funders’), the three lines of code within the for loop (from the 5th to the 7th line) are executed sequentially.

Solidity
...
  function withdraw() public onlyOwner {
    uint256 total = 0;
    for (uint256 i = 0; i < s_funders.length; i++) {
      address funder = s_funders[i];
      total += s_addressToAmount[funder];
      s_addressToAmount[funder] = 0;
    }
  ...

Control Flow Transfer

break and continue statements are used to control the interruption of processing within a loop or to jump to the next iteration step.

In the next example, within the for loop, break and continue are called under certain conditions. If i is 3, the loop is exited, and the process is interrupted. If i is 5, the loop skips to the next iteration (i = 6).

Solidity
for (uint i = 0; i < n; i++) {
    if (i == 3) {
        break; // Interrupts the loop
    }
    if (i == 5) {
        continue; // Jumps to the next iteration step
    }
    // Code beyond this line is executed if 'i' is not 5 (in case of 3, the loop is exited altogether)
}
```
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

After joining IBM in 2004, the author gained extensive experience in developing and maintaining distributed systems, primarily web-based, as an engineer and PM. Later, he founded his own company, designing and developing mobile applications and backend services. He is currently leading a Tech team at a venture company specializing in robo-advisory.

コメント

コメントする

CAPTCHA


目次