初心者にもわかるファイルメーカーの
使い方

filemakerにおける論理式の理解

2020-07-29 |  

こんにちは、最近コンビニ弁当にハマっているfilemakerチームの久保田です。
今回書かせていただく記事は論理式です。
スクリプトを分岐させる際のif文でよく目にするかと思います。
そんな スクリプトを組む上で必ず必要な知識となってくる論理式について詳しく解説させていただきます。

目次

論理式とは

filemakerにおける論理式

論理式とは


まず論理式とは何かというところから始めさせていただきます。

論理式は特定の式(◯+△=× etc..)に対してそれが正解であれば、1、間違っていれば0を返す式のことです。
流れをふまえて説明すると、論理式において1が返されれば、それが真(True)と判断され、0が返されれば、偽(False)と判断されます。

まずどのような条件で1、0を返すかを画像を使って説明していきます。下の画像に2つの論理式を載せてみました。

1+1=2という論理式に対して、1という結果が返されていることがわかると思います。
これは1+1=2という式が正解なので、1(True)が返されています。

次に論理式を1+1=3としてみました。
そうすると結果が0で返されていることがわかると思います。
これは1+1=3という式が間違っているので0(False)が返されています。

次に真(True)、偽(False)が判断されるとどうなるか説明します。
論理値を使う場面として代表的な例の1つにcase文があります。
case文 {case( 条件1(論理式); 結果1 ; デフォルト値 )} は条件がTrueであればその条件に対する結果が返され、Falseであればデフォルト値が返されるというものです。
下の画像に2つのcase文を載せました。

まず論理式を1+1=2とし、論理式の結果がTrueと判断されれば、「ご飯」、Falseであれば「お菓子」と返すように記述しました。
この場合、1+1=2は1が返ってくるので、Trueと判断され、「ご飯」という結果が返されます。

次に条件を1+1=3とします。
この場合、1+1=3は0が返ってくるので、Falseと判断され「お菓子」という結果が返ってきます。

filemakerにおける論理式


ここまでは一般的な論理式について説明しました。
では次にfilemakerにおける論理式についてです。
filemakerにおける論理式は一般的な論理式と異なる部分が存在します。

それは

論理式が0を返せば偽(false)、そうでなければ真(True)と判断される点です。

ではこれが何を意味するかを確かめてみましょう!

1つのcase文を画像に載せました。
論理式にPatternCountという関数が使われています。
これは特定のテキスト(バナナ)に対して検索テキスト(ナ)がいくつ含まれているかを評価する関数です。

計算結果は画像の通り、論理値がTrueと判断され、「好き」という文字が返されました。
しかしここで考えていただきたいのはPatternCountで返される結果です。
画像のPatternCount関数は(バナナ)というテキストに(ナ)が2つあるので結果は2と返されます。

ですが、結果はTrueで返されました。
ちなみにPatternCountの検索テキストに(バ)を入れた場合も、きちんとTrueで返され、(バ)と(ナ)以外の文字だとFalseが返され「嫌い」というcase文の結果が返されました。

つまり論理式が1でなくても0でなければその論理式はTrueと判断されることになります!

いかがだったでしょうか。
論理式は頭の中でこの式が何を意味するかがわかりずらかったりします。
しかしこれを理解するとスクリプトだけでなくポータルの「ポータルレコードのフィルタ」で利用することで、ポータル内検索機能を作ることができたりと、様々な場面で利用するのでぜひマスターしてください。

ではご精読ありがとうございました!