블록체인 학습
0 XP

조건문: if

프로그램은 항상 위에서 아래로만 흐르지 않습니다. 입력값이나 상태에 따라 다른 길로 분기 해야 할 때가 있고, 이때 쓰는 가장 기본적인 도구가 if 조건문입니다.

if 를 쓰면 특정 조건이 참일 때만 코드 블록을 실행하고, 그렇지 않으면 그냥 건너뜁니다. 스마트 컨트랙트에서는 "잔액이 충분한가?", "보낸 사람이 소유자인가?" 같은 판단을 내릴 때 끊임없이 씁니다.

if 문의 기본 문법

if 뒤의 소괄호 ( ) 안에는 반드시 bool 타입의 조건식 이 들어가야 합니다. 조건이 true 이면 중괄호 { } 안의 코드가 실행되고, false 이면 통째로 건너뜁니다.

다른 언어와 달리 Solidity 는 정수나 주소를 자동으로 참/거짓으로 바꾸지 않습니다. if (x) 처럼 쓸 수 없고, 반드시 if (x > 0) 처럼 비교 연산으로 bool 값을 만들어야 합니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
contract IfExample {
    // 입력값이 10보다 크면 true 를 반환합니다.
    function isBig(uint256 value) public pure returns (bool) {
        bool result = false;
        if (value > 10) {
            result = true;
        }
        return result;
    }
}

조건식을 만드는 연산자

조건식은 비교 연산자와 논리 연산자를 조합해 만듭니다. 비교 연산자에는 >, <, >=, <=, ==(같다), !=(다르다) 가 있고, 논리 연산자에는 &&(그리고), ||(또는), !(부정) 이 있습니다. 예를 들어 if (age >= 18 && hasTicket) 처럼 여러 조건을 한 번에 검사할 수 있습니다.

&& 와 || 는 단축 평가(short-circuit) 를 합니다. a && b 에서 a 가 false 면 b 는 아예 검사하지 않으므로, 무거운 검사는 뒤쪽에 두면 가스(gas)를 아낄 수 있습니다.

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

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