! 是一个用于操作布尔输出的有用工具。 (NOT) 运算符联合管理计划还可以有其他有价值的应用程序,例如在发送到 JMP 数据表的 <
首先,让我们澄清一下,我们正在讨论 ! 的使用。作为操作员而不是作为语法工具使用转义序列在带引号的字符串中;在这些情况下,它不具有 NOT 含义。
你可以想到!像任何其他人一样操作员在 JMP 中。 您可能熟悉最常见的:加 (+)、减 (-)、乘 (*)、除 (/) 等。 一般意义上,运算符是一个或两个字符的符号,用于执行常见算术操作、比较值、构造列表、数据元素的下标、发送消息、连接列表、作用域名称、粘合表达式和结束表达式。
这 ! JMP 中的字符(通常称为“bang”字符)在 JSL 代码中用作运算符来指示逻辑 NOT,这意味着在布尔值(true 或 false)的上下文中,它映射非零(或 true ) 值到 0(这意味着 false)并将 0(0 或 false)值映射到 1(这意味着 true)。
以下是其使用的一些简单示例:
例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 或添加 !在整个等式表达式之前,例如 !(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() 的一个经典用法是在 << SelectWhere() 消息的上下文中,如本例所示:
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 />
上面的第一个“SelectWhere”语句与您在执行以下操作时看到的输出相匹配行数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 技术支持!