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
👉 ||가 기점이 된다.
이거 캡쳐하지 말라고 하셨는데
이미 해버렸습니다...
죄송합니다..ㅎ
// * 주유 기능 - 주유하는 기능, 주유를 하면 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 */
}
이 부분은 혼자 복습을 더 해야할 것 같다. 내용이 방대해져서 집중이 잘 안됐다ㅠ