4. Solidity 기초 - While문, Review

심재원·2023년 12월 21일
0

1. While문

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.8.2 <0.9.0;

contract WHILE {
    uint STATE=1;
    function while_1(uint _n) public returns(uint, uint) {
        uint a;

        while(_n > a) {
            STATE *= 2;
            a++;
        }

        return (STATE,a);
    }

		// 짝수만 넣기
    uint[] numbers;
    function while_2(uint _n) public returns(uint[] memory) {
        while(numbers.length<_n) {
            numbers.push((numbers.length+1)*2);
        }

        return numbers;
    }
    
    // 자릿수 구하기
    function while_3(uint _n) public pure returns(uint) {
        uint a;
        while(_n > 0) {
            _n /= 10;
            a++;
        }

        return a;
    }
}

2. Review

contract Review {
	uint a; -> 상태변수
    
    function number(uint _a) public pure returns(uint) {
    	uint _b; -> 지역변수
    }
}
contract Review {
	uint a; 

	//원하는 값을 넣어주려면
    function setA(uint _a) public {
    	a = _a;
    }
    
    //상태변수 a에다가 내가 더한 값을 알려주는 함수
    //상태변수 값 가져올 때 view
    function add2(uint _a) public view returns(uint) {
    	return a + _a;


    // 인풋값 2개 uint _a,_b
    // 상태변수 볼 필요없고 지역변수만으로 가능할 때 pure
    function add(uint _a, uint _b) public pure returns(uint) {
    	return _a + _b;
    }
    
    //a의 b승을 반환하는 함수
    function powerB(uint _b) public view returns(uint) {
    	return a**_b;
    }
    
    //
    function mul(uint _a, uint _b) public pure returns(uint) {
    	return _a*_b;
    }
}

상태변수를 변경 시키면 view, pure 아무 것도 쓰지 않는다.

0개의 댓글