class9_for

개굴·2023년 5월 14일
0

solidity

목록 보기
9/11
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.18;

contract Note {
    function forLoop() public pure returns(uint){
        uint a;

        for(uint i =1; 1<6; i++){
            a = a+i;
        }
        return a;
    } 


    function forLoop2() public pure returns(uint, uint){
        uint a;
        uint i;

        for(i=1; i<6; i++ /*시작점; 끝점; 변화방식*/) {
            a = a+i;
        }

        return (a,i);
    }

    function forLoop3() public pure returns(uint, uint){
        uint a;
        uint i;

        for(i=1; i<=5; i++ /*시작점; 끝점; 변화방식*/) {
            a = a+i;
            //a += i;
            // <= 는 i = n+1까지
            // < 는 i =  n까지  
      
        //     a : i(먼저 늘어남) 
        //     0 : 0
        //     1 : 1
        //     3 : 2
        //     6 : 3
        //    10 : 4
        //    15 : 5
        //       : 6

        }

        return (a,i);
    }
}

contract fixedArray{
    uint[] a; 
    uint[4] b; //push, pop 못씀 -> 길이를 변화 시킴 but 길이 고정 되어 있음

    function getAlength() public view returns (uint){
        return a.length;
    }

    function pushA(uint _n) public {
        a.push(_n);
    }

    function getA() public view returns (uint[] memory){
        return a;
    }

    function getBlength() public view returns (uint){
        return b.length;
    }

    function getB() public view returns (uint[4] memory){
        return b;
    }

    function pushB(uint _n, uint n) public {
        b[n-1] = _n;
    }

    uint count;
    function pushB2(uint _n) public returns (uint) {
        b[count++] = _n; 
        //_n의 값이 들어간다음에 count++ 됨 / 0번자리 !!
        // uint256[4]: 1,0,0,0
        return count;
    }

    //이거 아님 
    function pushB3(uint _n) public returns (uint) {
        b[++count] = _n; 
        //++count 된다음에 값이 들어감 그래서 1번자리에 들어감 
        // uint256[4]: 0,1,0,0
        return count;
    }

    function getCount() public view returns(uint) {
        return count;
    }


    uint[4] f;
    uint count2;
    function setF(uint _n) public {
        f[count2++] = _n;
    }

    function getF() public view returns (uint[4] memory){
        return f;
    } 

    function forloopF() public  view returns(uint){
        uint add;
        for(uint i=0; i <4; i++){
            add=add+f[i];
        } 
        return add;
    }

    function forloopLength() public view returns(uint){
        uint add;
        for(uint i=0; i < f.length; i++){
            add=add+f[i];
        } 
        return add;
    } 

    uint[] d;
    
    function pushd(uint _n) public {
        d.push(_n);
    }

    function getD() public view returns(uint[] memory) {
        return d;
    }

    function forLoop6() public view returns(uint) {
        uint a;
        for(uint i=0;i<d.length;i++) {
            a=a+d[i];
        }

        return a;
    }
}

0개의 댓글