問題一覧に戻る
初級基本構文
問題13: 論理演算子
Solidityの論理演算子を学習します。これらの演算子はブール値を扱います:AND(&&)は両方の条件が真の場合のみtrueを返し、OR(||)は少なくとも1つの条件が真の場合にtrueを返し、NOT(!)はブール値を反転させます。Solidityは短絡評価を使用します - &&では最初の条件がfalseの場合、2番目は評価されません。||では最初がtrueの場合、2番目は評価されません。これらの演算子はスマートコントラクトの複雑な条件ロジックに不可欠です。
pragma solidity ^0.8.0;
contract LogicalOperators {
// AND演算子: 両方の条件が真の場合にtrue
function checkBoth(uint256 a, uint256 b) public pure returns (bool) {
return a > 10 b < 50;
}
// OR演算子: どちらか一方が真の場合にtrue
function checkEither(uint256 x) public pure returns (bool) {
return x == 0 x == 100;
}
// NOT演算子: 条件を反転
function isNotZero(uint256 num) public pure returns (bool) {
return num == 0;
}
// 複雑な論理式
function complexCheck(uint256 a, uint256 b) public pure returns (bool) {
return (a > 5 b > 5) (a == 0 b == 0);
}
}