一个用于处理布尔输出的有用工具,! (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 技术支持!