BlockChain/솔리디티

ForAndWhileLoops

정신이 많이없는 개발자 2022. 3. 12. 21:29
728x90
반응형
간단하게 솔리디티언어로 반복문을 작성해보았습니다.  js나 파이썬 등에서는 100만번을 돌려도 상관없지만. 솔리디티는 가스비가 나가기 때문에 최대한 불피요한 반복을 줄여서 가스비 절감합시다~~ 
continue는 i 값이 3일때 코드실행안하고 i=4로 바로 넘어가게 됩니다.
break는  i=5일때 반복문을 끝낸다는 말입니다. 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;



contract ForAndWhileLoops {
    function loops() external pure {
       for(uint i=0; i< 10; i++){
           if( i == 3){
               continue;
           }

           if( i == 5 ){
               break;
           }
       }

       uint j = 0;
       while (j < 10){
           j++;
       }
    }
    //JS로 100만번 돌려도 문제가 되지않지만 
    //루프수가 많을 수록 더많은 가스를 사용할 것이다.  필요없는 반보을 줄여서 가스비를 절감시켜라!! 
    function sum(uint _n) external pure returns (uint){
        uint s;
        for(uint i=0; i<=_n; i++){
            s += i;
        }

        return s;
    }
}
반응형