こんにちは!はこです。
AutoLISPを独学で覚えて、5年以上業務で使用しています。
今回の記事では数値を比較する比較演算関数について解説してきます。
「もし○○ならば□□する」などの条件分岐でよく使われる、実用性の高い関数です。
関連記事:動作の流れを操る者!AutoLISPの条件分岐を解説
自作コマンドで作業を効率化したいAutoCADユーザーの方必見です。
数値の大小関係を判定!AutoLISPの比較演算を解説
比較演算とは
比較演算とは2つのデータを比べて、等しいとかこっちの方が大きいなどの判定をする計算のことです。
返す結果は「T(真)」または「nil(偽)」のどちらかになります。
「T」というのは他のプログラミング言語でいうところの「True」にあたり、「nil」は「False」にあたります。
比較の条件を満たす場合は「T」を返して、満たさない場合は「nil」を返します。
比較演算関数の書き方
比較演算関数は次のように書きます。
- 等しい (= 引数1 引数2)
- より大きい (> 引数1 引数2)
- 以上 (>= 引数1 引数2)
- より小さい (< 引数1 引数2)
- 以下 (<= 引数1 引数2)
- 等しくない (/= 引数1 引数2)
引数の間に比較演算関数を入れるイメージを持っていただくと動作が分かりやすいです。
等しい =
「=」は引数の2つの数値が等しいか判定する関数です。等しい場合は「T」、等しくない場合は「nil」が返ります。
(= 2 2)
⇒ T
(= 2 3)
⇒ nil
「=」は代入という意味ではないので注意してください。
より大きい >
「>」は2つの引数のうち、左側に記述した数値の方が大きい場合に「T」を返します。それ以外は「nil」を返します。
(> 3 2)
⇒ T
(> 3 3)
⇒ nil
(> 1 2)
⇒ nil
以上 >=
「>=」は引数のうち、左側に記述した数値が右側の数値以上の場合に「T」を返します。それ以外の場合には「nil」を返します。
(>= 3 2)
⇒ T
(>= 2 2)
⇒ T
(>= 1 2)
⇒ nil
より小さい <
「<」は2つの引数のうち、左側に記述した数値の方が小さい場合に「T」を返します。それ以外は「nil」を返します。
(< 2 3)
⇒ T
(< 3 3)
⇒ nil
(< 3 2)
⇒ nil
以下 <=
「<=」は2つの引数のうち、左側に記述した数値が右側の数値以下の場合に「T」を返します。それ以外の場合には「nil」を返します。
(<= 2 3)
⇒ T
(<= 2 2)
⇒ T
(<= 2 1)
⇒ nil
等しくない
「/=」は2つの引数が等しくないときに「T」を返します。等しいときは「nil」を返します。
(/= 1 2)
⇒ T
(/= 2 2)
⇒ nil
「=」とは逆の動作をします。
まとめ
今回の内容をまとめます。
- 比較演算とは
・2つのデータを比べて結果を返す計算 - 等しい (= 引数1 引数2)
・引数1と引数2が等しい場合に「T」を返す - より大きい (> 引数1 引数2)
・引数1の方が大きい場合に「T」を返す - 以上 (>= 引数1 引数2)
・引数1が引数2以上の場合に「T」を返す - より小さい (< 引数1 引数2)
・引数1の方が小さい場合に「T」を返す - 以下 (<= 引数1 引数2)
・引数1が引数2以下の場合に「T」を返す - 等しくない (/= 引数1 引数2)
・引数1と引数2が等しくない場合に「T」を返す