【Solidity】if文(条件分岐)の書き方は?

Solidityにおけるif文(条件分岐)の書き方について解説します。

構文

if文のパターンは、以下の3つがあります。

  • if文のみ(単一条件)
  • if 〜 else(その他条件)
  • if 〜 else if(その他特定条件)

以下、それぞれについて解説します。

また、比較演算子(条件判定に用いる不等号)についても、まとめ表を掲載しておきます。

if文のみ(単一条件)

if文のみ(単一条件)の構文は、以下のようになります。

// 条件に当てはまる場合
if (条件) {
    処理
}

if 〜 else(その他条件)

if 〜 else(その他条件)の構文は、以下のようになります。

// 条件に当てはまる場合
if (条件) {
    処理
// それ以外の場合
} else {
    処理
}

if 〜 else if(その他特定条件)

if 〜 else if(その他特定条件)の構文は、以下のようになります。

else if句は何度繰り返しても大丈夫です。

// 条件に当てはまる場合
if (条件) {
    処理
// それ以外の場合(条件に当てはまる場合)
} else if (条件) {
    処理
// それ以外の場合(条件に当てはまる場合)
} else if (条件) {
    処理
// それ以外の場合
} else {
    処理
}

比較演算子(条件判定に用いる不等号)

比較演算子をまとめた表を、以下に掲載します。

比較演算子意味
==イコール(等しい)
!=ノットイコール(等しくない)
<小なり(〜より小さい/未満)
>大なり(〜より大きい/超過)
<=小なりイコール(〜より小さいまたは同じ/以下)
>=大なりイコール(〜より大きいまたは同じ/以上)
比較演算子(条件判定に用いる不等号)

サンプルコード

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Test {

    /* if文のみ(単一条件) */
    function checkAgeIf(uint8 age) public pure returns(string memory) {
        string memory message = "";
        // 18未満の場合
        if (age < 18) {
            message = unicode"未成年です。";
        }

        return message;
    }

    /* if 〜 else(その他条件) */
    function checkAgeIfElse(uint8 age) public pure returns(string memory) {
        string memory message = "";
        // 18未満の場合
        if (age < 18) {
            message = unicode"未成年です。";
        // それ以外の場合
        } else {
            message = unicode"成人です。";
        }

        return message;
    }

    /* if 〜 else if(その他特定条件) */
    function checkAgeIfElseIf(uint8 age) public pure returns(string memory) {
        string memory message = "";
        // 18未満の場合
        if (age < 18) {
            message = unicode"未成年です。";
        // 20未満の場合
        } else if (age < 20) {
            message = unicode"成人です。10代最後を楽しもう!";
        // 30未満の場合
        } else if (age < 30) {
            message = unicode"成人です。まだ20代、若い若い!";
        // 40未満の場合
        } else if (age < 40) {
            message = unicode"成人です。30代はアットいう間に過ぎるぞ!";
        // それ以外の場合
        } else {
            message = unicode"成人です。健康第一で過ごしましょう!";
        }

        return message;
    }
    
}

if文はコードを書く上で必須の知識ですね!必ずおさえておきましょう。“または”や“かつ”などの、いわゆる条件演算子については、別記事にて解説しています。宜しければ併せて参考ください。

タイトルとURLをコピーしました