본문 바로가기
블록체인/WEB3 개발

솔리디티 기본 문법 - 반복문

by 제이제이_은재 2022. 7. 11.
반응형

 

💡솔리디티 기본 문법 - 반복문 (loop)

 

반복문은 특정한 작업을 계속해서 수행해야 할 때 사용한다.

 

✓ while문

 

while 문은 가장 기본적인 반복문이다. 조건식이 참일 때 중괄호 안의 코드를 반복적으로 시행하고, 조건식이 거짓이 되면 박복문을 종료한다.

 

while (조건식){
    조건식이 참이면 여기있는 코드 수행
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;

import "./UIntFuncstions.sol";

contract WhileLoop {
    uint[] data;
    uint8 j = 0;

    function loop() public returns (uint[] memory) {
        while (j<5) {
            j++;
            data.push(j);
        }
        return dta;
    }

}

 

✓ do-while문

 

do-while문은 while 문과 매우 유사하다. 하지만 반복문의 끝에 조건식 검사가 있기 때문에, 조건식이 거짓인 경우에도 적어도 한 번은 무조건 실행한다는 특징이 있다.

 

do 
{
    // 최초 한번은 무조건 실행, 이후부터는 조건식이 참이면 여기있는 코드 실행    
} while (조건식)
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;

import "./UIntFuncstions.sol";

contract DoWhileLoop {
    uint[] data;
    uint8 j = 0 ;

    function loop () public returns(uint[] memory){
        do{
            j++;
            data.push(j);
        }while(j<0);
        return data;
    }

}

 

✓ for 문

 

for 문은 가장 간결한 반복문이라고 할 수 있다.

for (초기값; 조건식; 증감식){
	조건식이 참이면 여기있는 코드 수행
}

for 문의 구조는 위와 같다.

 

초기값: 반복 횟수를 셀 변수를 초기화하는 부분

조건식: 참인 경우에 반복 수행

증감식: 초기값을 담은 변수를 변화시킴. 매 반복시 한번씩 실행

 

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;

contract ForLoop {
    uint[] data;

    function loop() public returns(uint[] memory){
        for(uint i=0; i<5; i++){
            data.push(i);
        }
        return data;
    }

}

 

✓ continue

 

continue는 반복문 실행 도중 나머지 코드를 건너뛰고 싶을 때 사용한다. while, do-while, for 문 안에 사용할 수 있다.

 

while(조건식){
	조건식이 참이면 여기있는 코드 수행
    <새로운 조건 추가>{
    	continue;
        조건에 만족하면 아래 코드를 실행하지 않고 건너 뛴다.
    }
    카운터 값 증가!
}

 

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;

contract ContinueLoop {
    uint[] data;
    uint8 j = 0;

    function loop() public returns(uint[] memory){
        while(j<=100){
            j++;
            if(j%2 != 0){
                continue;
            }
            data.push(j);
        }
        return data;
    }
}

 

✓ break

 

break 는 중간에 반복문을 멈추고 바깥으로 나가고 싶을 때 사용한다. while, do-while, for 문 안에 사용할 수 있다.

 

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;

contract BreakLoop{
    uint[] data;
    uint8 j = 0;

    function loop() public returns(uint[] memory){
        while(j <= 100){
            j++;
            if(j == 5){
                break; // j가 5 되었을 때 while 반복문을 빠져나감
            }
            data.push(j);
        }
        return data;
    }
}
반응형

댓글