Solidity 문법 - (17) 반복문

2023. 6. 1. 22:22BlockChain/Solidity 깨부수기 ( 유투브 강의 )

목차
1. 반복문
2. 반복문 예제코드

 

1. 반복문

 

 

이전 포스팅의 조건문과 마찬가지로 솔리디티에도 반복문이 존재한다.

 

반복문은 조건을 만족하면 코드를 반복실행한다.

 

솔리디티에서 반복문은 세 가지 형태로 사용할 수 있다.

 

for 문

for(초기값; 종료조건; 값의 변화량){
    // 반복실행할 코드
}

 

while 문

초기값 선언

while(종료 조건){
    // 반복실행할 코드
    값의 변화량
}

 

do while 문

 

do while은 위의 두 반복문과는 조금 다르게 조건을 체크하지않고 코드를 실행한다.

 

즉, 무조건 do 안에있는 코드를 한번 실행하고나서 종료를 하게된다.

 

위의 두 반복문은 조건이 맞지않으면, 코드를 실행하지 않지만,

 

do while문은 조건이 맞지 않더라도 반드시 한번은 코드를 실행한다.

 

초기값 선언

do{
    // 반복실행할 코드
} while(종료 조건)

 

 

2. 반복문 예제코드

 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract LoopExample {
    function forLoop(uint256 _num) public pure returns(uint256) {
        uint256 result;

        for (uint256 i = 0; i <= _num; i++) {
            result += i;
        }

        return result;
    }

    function whileLoop(uint256 _num) public pure returns(uint256) {
        uint256 count = _num;
        while (count > 0) {
            count--;
        }

        return count;
    }

    function doWhileLoop(uint256 _num) public pure returns(uint256) {
        uint256 result = 1;
        uint256 i = 1;

        do {
            result *= i;
            i++;
        } while (i <= _num);

        return result;
    }
}

 

for문은 값을 1부터 차례대로 점점 더해가는 등차수열의 모습을 하고 있다.

 

while문은 값을 1씩 줄여 나가 0이 되면 종료되는 함수이다.

 

do-while문은 n!, 팩토리얼을 구현한 함수이다.

 

각각 실행해보면,

 

 

for 문은 1 + 2 + 3 + 4 + 5 = 15를 출력한 것을 볼 수 있고,

 

while문은 5를 넣어서 결국 0까지 값을 깎아 0을 출력했다.

 

마지막으로 do-while문은 5!, 5*4*3*2*1 = 120을 출력하고있다.