一個用於處理布爾輸出的有用工具,! (NOT) 運算符JMP還可以有其他有價值的應用,例如在發送到 JMP 數據表的 <
首先,讓我們在這裡澄清一下,我們正在討論使用 !作為一個操作員而不是作為在轉義序列在帶引號的字符串中;在這些情況下,它不具有 NOT 含義。
你可以想到!像任何其他人一樣操作員在 JMP 中。 您可能熟悉最常見的:加 (+)、減 (-)、乘 (*)、除 (/) 等。 在一般意義上,運算符是一個或兩個字符的符號,用於執行常見的算術操作、比較值、構造列表、下標數據元素、發送消息、連接列表、範圍名稱、膠水錶達式和結束表達式.
這 ! JMP 中的字符(通常稱為“砰”字符)在 JSL 代碼中用作表示邏輯非的運算符,這意味著在布爾值(真或假)的上下文中,它映射非零(或真) 值到 0(表示假)並將 0(0 或假)值映射到 1(表示真)。
以下是其使用的一些簡單示例:
例 1:
x = 1;
!x;
//LOG RESULT: 0
例 2:
x = 0;
!x;
//LOG RESULT: 1
例 3:
!(1 < 2);
//LOG RESULT: 0
在將其與其他運算符分組時,您可以將其視為屬於其他“邏輯”運算符,例如 OR (|) 和 AND (&),它們通常用於 If() 語句中。
例 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 with != 或添加 !在整個相等表達式之前,例如 !(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 技術支持!