大华化工:有人知道Delphi 中not的用法吗?

来源:百度文库 编辑:高校问答 时间:2024/04/25 12:04:18
例如,if not HasUndo then //其中HasUndo已经定义赋值过了Boolean类型
begin
Editor.Undo; //一个控件语句
HasUndo:=True;
end;
如果HasUndo:=False那么not HasUndo就为True吧?
那么if not HasUndo then 是什么意思啊?语句之前HasUndo已经是False了。
能说具体点吗?我也知道not是否定的意思啊。
也就是说if not HasUndo then 语句,无论HasUndo是False还是True这条语句都会执行?

这里有两个问题.
第一个, not是一个逻辑运算符, 表示逻辑取反. 如HasUndo为True, not HasUndo为False, 反之, HasUndo为False, not HasUndo则为True;
第二个, 是if语句. 它要求if后是个布尔类型的值. 如果该值为True, 则执行后面的语句, 否则不执行.
这样 "if not HasUndo then"后面的语句体, 如果HasUndo为True, not HasUndo则为False, 就不会被执行; 反之, 如果HasUndo为False, 则not HasUndo为True, 后面的语句就会执行. 在Pascal中常这么用, 程序比较简洁

如果HasUndo:=False
那么if not HasUndo then
就是if条件为真
就会执行if语句的内容

not 意味否定
比如说 2>1 为true
not (2>1) 为false