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文と合わせて覚えておきましょう。