こんにちは、最近コンビニ弁当にハマっているfilemakerチームの久保田です。
今回書かせていただく記事は論理式です。
スクリプトを分岐させる際のif文でよく目にするかと思います。
そんな スクリプトを組む上で必ず必要な知識となってくる論理式について詳しく解説させていただきます。
目次
論理式とは
まず論理式とは何かというところから始めさせていただきます。
論理式は特定の式(◯+△=× 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と判断されることになります!
いかがだったでしょうか。
論理式は頭の中でこの式が何を意味するかがわかりずらかったりします。
しかしこれを理解するとスクリプトだけでなくポータルの「ポータルレコードのフィルタ」で利用することで、ポータル内検索機能を作ることができたりと、様々な場面で利用するのでぜひマスターしてください。
ではご精読ありがとうございました!
2021-01-15
FileMaker 認定資格試験対策 備忘録 Part.5
2021-01-12
whileとloopを比較してみた!!
2021-01-05
GoogleAPIキーを取得しよう
2020-12-17
FileMaker小ネタ集 〜レイアウト編〜
2020-12-09
ポータル行を含んだレコード複製の作り方
〜コミットコントロールを考慮した処理〜
2020-11-27
FileMaker 認定資格試験対策 備忘録 Part.4
2020-11-20
Claris Engage Japan 2020の収録にいってきました!
2020-11-11
JSON関数の階層化
2020-11-02
FileMaker 認定資格試験対策 備忘録…3
2020-10-27
外部データソースを利用するときにあったこと