[블체스 Part.3] 230517

이현진·2023년 5월 17일
0

BlockChain School

목록 보기
18/20

비교연산자 &&, ||

    function ABC2() public view returns(string memory) {
        require(a ==0 || b != 1 && c ==0);
      
       return "aaa";
       /*
        0,0,0, -> o
       */
   }
   (a // b,c)
    (a,b // c)
    (a,c // b)
    a=0, b=1, c=1 <- a만 만족 -> o
    a=1, b=2, c=1 <- b만 만족 -> x
    a=1, b=1, c=0 <- c만 만족 -> x
    a=0, b=2, c=1 <- a,b 만족 -> o
    a=0, b=1, c=0 <- a,c 만족 -> o 
    a=1, b=2, c=0 <- b,c 만족 -> o
function ABCD() public view returns(string memory) {
        require(a ==0 || b != 1 && c ==0 || d==0);

       return "aaa";
   }
		a=0, b=1, c=1, d=1 <- a만 만족 -> o
        a=1, b=0, c=1, d=1 <- b만 만족 -> x
        a=1, b=1, c=0, d=1 <- c만 만족 -> x
        a=1, b=1, c=1, d=0 <- d만 만족 -> o 
        a=0, b=0, c=1, d=1 <- a,b만 만족 -> o
        a=0, b=1, c=0, d=1 <- a,c만 만족 -> o
        a=0, b=1, c=1, d=0 <- a,d만 만족 -> o
        a=1, b=0, c=0, d=1 <- b,c만 만족 -> o
        a=1, b=0, c=1, d=0 <- b,d만 만족 -> o
        a=1, b=1, c=0, d=0 <- c,d만 만족 -> o
        a=0, b=0, c=0, d=1 <- a,b,c만 만족 -> 
        a=0, b=0, c=1, d=0 <- a,b,d만 만족 -> o
        a=0, b=1, c=0, d=0 <- a,c,d만 만족 -> o
        a=1, b=0, c=0, d=0 <- b,c,d만 만족 -> o

👉 ||가 기점이 된다.


이론!!

이거 캡쳐하지 말라고 하셨는데
이미 해버렸습니다...
죄송합니다..ㅎ


TEST3 - 주유 기능

    // * 주유 기능 - 주유하는 기능, 주유를 하면 1eth를 지불해야하고 연료는 100이 됨
    function reCharge() public payable {
        require(((prePaid >= 10**18 && msg.value ==0) || msg.value == 10**18) && myCar.status == carStatus.turnedOff);
        /*
        prepaid 1 이상, msg.value = 0 -> o
        prepaid 1 이상, msg.value = 1 fin -> x
        prepaid 1 이상, msg.value = 1 eth -> o
        prepaid 1 이하, msg.value = 1 fin -> x
        prepaid 1 이하, msg.value = 1 eth -> x
        */

        if(msg.value != 10**18) {
            prePaid -= 10**18;
        }

        myCar.fuelGauage = 100;
    }

    //* 주유소 사장님은 2번 지갑의 소유자임, 주유소 사장님이 withdraw하는 기능
    function withdraw() public {
        require(owner==msg.sender);
        owner.transfer(address(this).balance);
    }

    // * 지불을 미리 하고 주유시 차감하는 기능
    uint public prePaid;

    function deposit() public payable {
        prePaid += msg.value; /* prePaid = prePaid + msg.value */
    }

TEST3(확장판) gasStation

이 부분은 혼자 복습을 더 해야할 것 같다. 내용이 방대해져서 집중이 잘 안됐다ㅠ

profile
https://github.com/lhjbg0821

0개의 댓글