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