블록체인 학습
0 XP

반복문: while

while 반복문 은 주어진 조건이 참인 동안 코드를 계속 반복합니다. 반복 횟수가 미리 정해져 있지 않고, 어떤 조건이 만족될 때까지 반복해야 할 때 유용합니다.

while 문의 동작

while (조건) {
    // 반복할 코드
}

while 은 매 반복 직전 에 조건을 검사합니다. 따라서 처음부터 조건이 false 이면 본문은 한 번도 실행되지 않습니다. 반대로 조건이 계속 참이면 무한히 반복하므로, 본문 안에서 조건에 영향을 주는 값을 반드시 바꿔야 합니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
contract CountdownExample {
    // n을 1이 될 때까지 2로 나눈 횟수를 반환합니다.
    function halveCount(uint256 n) public pure returns (uint256) {
        uint256 count = 0;
        while (n > 1) {
            n = n / 2;
            count++;
        }
        return count;
    }
}

반복 횟수를 알면 for, 모르면 while

for 와 while 은 서로 변환이 가능합니다. 반복 횟수가 명확하면 for 가, "조건이 만족될 때까지" 처럼 종료 시점을 미리 알 수 없으면 while 이 더 자연스럽습니다. 어느 쪽이든 블록체인에서는 언젠가 반드시 멈춘다는 보장 이 가장 중요합니다.

반복할 때마다 조건이 언젠가 false 가 되도록 내부에서 값을 꼭 바꿔주세요. 그렇지 않으면 무한 루프가 되어 gas 를 모두 소진하고 트랜잭션이 실패합니다.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.