Code Editor
에디터를 불러오는 중...
실행 결과
Run 버튼을 눌러 코드를 실행하세요.
Run 버튼을 눌러 코드를 실행하세요.
지금까지 배운 조건문과 반복문을 모두 활용 해 구간을 다루는 컨트랙트를 완성하세요. 범위 판별(조건문)과 구간 합(반복문)을 한 컨트랙트에서 함께 구현합니다.
x >= a && x <= b 처럼 논리 연산자 && 로 묶습니다.for 반복문으로 누적합니다. 합계를 0 으로 초기화하고, 시작값부터 끝값까지(양 끝 포함) 반복하며 더하면 됩니다.// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// 패턴 예시: 범위 판별과 구간 곱(참고용)
contract Pattern {
function within(uint256 v, uint256 lo, uint256 hi) public pure returns (bool) {
return v >= lo && v <= hi;
}
function rangeSum(uint256 lo, uint256 hi) public pure returns (uint256) {
uint256 acc = 0;
for (uint256 i = lo; i <= hi; i++) {
acc += i;
}
return acc;
}
}해야 할 일:
RangeMath 컨트랙트에 아래 두 함수를 구현하세요.
isInRange(uint256 value, uint256 low, uint256 high)
public pure, bool 반환value 가 low 이상 high 이하이면 true, 아니면 falsesumInRange(uint256 low, uint256 high)
public pure, uint256 반환low 부터 high 까지(양 끝 포함)의 모든 정수의 합을 반복문으로 계산해 반환sumInRange(1, 5) 은 15isInRange 는 조건식 하나로, sumInRange 는 for 반복문으로 작성할 수 있습니다. 구간이 넓을수록 반복
횟수가 많아져 gas 가 늘어난다는 점도 함께 떠올려보세요.