【Solidity】論理演算子(かつ/または)の書き方は?

Solidityにおける論理演算子(かつ/または)の書き方について解説します。

構文

Solidityにおける論理演算子(かつ/または)の書き方ですが、以下となります。

かつ(論理積)

「かつ(論理積)」は && とアンパサンド(&)を2つ続けて書きます。

条件1 && 条件2

または(論理和)

「または(論理和)」は || とバーティカルバー(|)を2つ続けて書きます。

条件1 || 条件2

複数条件をまとめる場合

複数の条件をまとめたい場合、条件のかたまりを丸かっこ(())で囲います。

(条件1 && 条件2) && (条件3 || 条件4)

サンプルコード

// SPDX-License-Identifier: GPL-3.0
 
pragma solidity >=0.7.0 <0.9.0;

contract Test {
    
    function sum(uint x, uint y) public pure returns(uint) {
        uint sum;

        // x > 0 かつ y > 0
        if (x > 0 && y > 0) {

            // x >= 100 または y >= 100
            if (x >= 100 || y >= 100) { revert("values must be less than 100"); }

            sum = x + y;
        }
        
        return sum;
    }

}

クセのあるSolidityですが論理演算子は他の多くのプログラミング言語と同じですね!if文と合わせて覚えておきましょう。

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