ブール出力を操作するための便利なツールである ! (NOT) 演算子JMP JMP データ テーブルに送信される <
まず、ここで ! の使用について議論していることを明確にしましょう。としてオペレーターで使用される構文ツールとしてではありません。エスケープシーケンス引用符で囲まれた文字列内。このような場合、NOT の意味は持ちません。
と考えることができます!他のものと同じようにオペレーターJMPで。 おそらく最も一般的なものには、足し算 (+)、引き算 (-)、乗算 (*)、除算 (/) などがあるでしょう。 一般に、演算子は、一般的な算術アクションの実行、値の比較、リストの構築、データ要素への添字付け、メッセージの送信、リストの連結、スコープ名、接着式、および終了式に使用される 1 文字または 2 文字の記号です。 。
! JMP の文字 (「bang」文字と呼ばれることが多い) は、論理 NOT を示す演算子として JSL コードで使用されます。これは、ブール値 (true または false) のコンテキストで、非ゼロ (または true) をマップすることを意味します。 ) 値を 0 (偽を意味する) にマッピングし、0 (0 または偽) 値を 1 (真を意味する) にマップします。
その簡単な使用例をいくつか示します。
例 1:
x = 1;
!x;
//LOG RESULT: 0
例 2:
x = 0;
!x;
//LOG RESULT: 1
例 3:
!(1 < 2);
//LOG RESULT: 0
他の演算子とグループ化する場合は、通常 If() ステートメントで使用される OR (|) や AND (&) などの他の「論理」演算子に属するものと考えることができます。
例 1:
x = 4;
//Check if x is NOT equal to 2 or 3
If( x != 2 & !(x == 3),
Show("Not Equal to 2 or 3"),
Show("Equal to 2 or 3")
);
//LOG RESULT: "Not Equal to 2 or 3"
注: ここで、!= を使用するか、! を追加すると NOT Equal をアサートできることに注意してください。等式全体の前 (!(x==3) など)。
例 2:
str = "hello world";
//Check if str does NOT contain the letter "o"
If (!Contains(str,"o"),
Show("Does not contain o"),
Show("Contains o")
);
//LOG RESULT: "Contains o"
を使用すると役立つ状況がたくさんあります。上記のような If() ステートメントに限定されません。 ! の使用例を見ました。 Contains() を使用しますが、もう少し詳しく見てみましょう。 Contains() の古典的な使用法は、次の例に示すように、<< Select Where() メッセージのコンテキスト内で使用されます。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
<FONT color="#000000">dt << Select Where (!Contains(:name, "A"));
</FONT>
これは以下と同じです
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
dt << Select Where (Contains(:name, "A")==0);<BR />
上記の最初の「Select Where」ステートメントは、次の手順を実行した場合に表示される出力と一致します。行UI のウィンドウに移動し、行の選択 --> 場所を選択…そして、ダイアログのドロップダウンからオプションを「含まない」を選択します。

上の例からわかるように、! の使用はコードをより簡潔で読みやすくすることができます。また、以下のように <
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" and "E", and contain letter "I"
dt << Select Where (!Contains(:name, "A") & !Contains(:name,"E") & Contains(:name, "I"));
NOT 演算子には JSL に多くの便利なアプリケーションがあるので、コード内で試してみてください。 もちろん、問題が発生したり質問がある場合は、お気軽に JMP テクニカル サポートにお問い合わせください。