ブール出力を操作するための便利なツールである ! (NOT) 演算子JMPまた、JMP データ テーブルに送信される <
まず、ここで ! の使用について説明していることを明確にしましょう。としてオペレーターで使用される構文ツールとしてではなく、エスケープ シーケンス引用符で囲まれた文字列。これらの場合、NOT の意味を持ちません。
あなたは考えることができます!他のようにオペレーターJMPで。 加算 (+)、減算 (-)、乗算 (*)、除算 (/) など、最も一般的なものはよく知られています。 一般的な意味では、演算子は、一般的な算術アクションの実行、値の比較、リストの作成、データ要素への添え字付け、メッセージの送信、リストの連結、スコープ名、グルー式、および式の終了に使用される 1 文字または 2 文字の記号です。 .
! JMP の文字 (「バング」文字と呼ばれることが多い) は、論理 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 テクニカル サポートまでお気軽にお問い合わせください。