블록체인 학습
0 XP

삼항 연산자

간단한 if/else 분기는 삼항 연산자(ternary operator) 를 사용해 한 줄로 줄여 쓸 수 있습니다. 값을 두 후보 중 하나로 고르는 상황에서 코드를 짧고 읽기 쉽게 만들어 줍니다. 이름이 "삼항"인 이유는 세 개의 피연산자(조건식, 참일 때 값, 거짓일 때 값)를 받기 때문입니다.

기본 문법

조건식 ? 참일_때_값 : 거짓일_때_값

조건식이 true 이면 ? 뒤의 값이, false 이면 : 뒤의 값이 전체 식의 결과가 됩니다. 결과는 변수에 대입하거나 그대로 return 할 수 있습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
contract TernaryExample {
    // 두 값 중 큰 값을 반환합니다.
    function max(uint256 a, uint256 b) public pure returns (uint256) {
        return a > b ? a : b;
    }
}

if/else 와의 비교

위 코드는 아래 if/else 와 완전히 동일하게 동작합니다. 단지 표현이 더 간결할 뿐입니다.

if (a > b) {
    return a;
} else {
    return b;
}

삼항 연산자는 "값을 고르는" 표현식이라 대입문 안에서도 쓸 수 있습니다. 예: uint256 fee = isVip ? 0 : 100;

삼항 연산자는 짧은 분기에만 쓰세요. 양쪽 값의 타입이 같아야 하며, 분기가 복잡해지거나 중첩(a ? b : c ? d : e)되면 가독성이 급격히 떨어지므로 일반 if/else 가 더 명확합니다.

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

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