主题:有几处不明白
TMGY119
[专家分:0] 发布于 2007-09-20 10:13:00
X=100
a=10:B=20
v1=-1:v2=0
if (a< B) THEN
IF ( B<>15 ) THEN
IF NOT V1 THEN
X=X-1
ENDIF
IF V2 THEN X=10
ENDIF
X=X-1
ENDIF
PRINT "X=";X
END
这个程序有两处不懂,1是IF NOT V1 THEN 是什么意思以什么作为条件? 2是 IF V2 THEN X=10是什么意思?
回复列表 (共5个回复)
沙发
moz [专家分:37620] 发布于 2007-09-20 22:24:00
not( )
对操作数(或者说是参数)的逻辑值取反判断。
字面上可以理解为 如果 不是 条件 那么就 让X的值变成10吧
没有not,就直接以条件V2来判断。
怎样判断?
以二进制为例:
全是0,假,条件不成立
其中有1,真,条件成立
以十进制举例:
0,假,条件不成立
非0,真,条件成立
not是怎样运算的?翻翻计算机基础教材,
对操作数全部取反。
除了 not(-1)=0 假
-1以外的数not后都是真。
板凳
TMGY119 [专家分:0] 发布于 2007-09-21 09:21:00
谢谢.IF NOT V1 THEN
X=X-1
ENDIF
IF V2 THEN X=10
ENDIF
这两处还是有点不太明白,(a< B)成立 ( B<>15 成立,则 IF NOT V1 即V2=0,则X=X-1,是不是这样理解?
3 楼
moz [专家分:37620] 发布于 2007-09-21 11:07:00
我听不明白,而且你的 IF....endif 语句块并不配对。出错。
我尝试以两种方式向你解释:
if not V1 then 如果 V1<> -1 , 即 not V1 为真(0以外的值),那么
X=X-1 让X的值减1
elseif V2 then 否则 如果 V2 为真(非零值),那么让 X 为 10
X=10
endif
V1,V2是条件,也可以是值.可以按照相同的概念来理解.
第二种实例:
if not (a < B) then X=X-1 如果a小于B[color=0000ff]不[/color]成立,那么让X少1
if B<>15 then X=10 如果B不等于15,那么让X的值是10
能不用IF块时,最好单行解决,解释速度不一样的.
其实在QB里的逻辑判断计算中,成立的值是-1,不成立的值是0
比如 a<B 如果a真的比B小,这个表达式的值(结果)就是-1,否则是0
4 楼
wx.psfx [专家分:10] 发布于 2007-10-17 14:56:00
v1=-1,v2=0
if not v1(如果条件不是真的,即:如果条件为假)then(则执行)
if v2 (如果条件是假的)then(则执行)
5 楼
蓝色的水晶 [专家分:90] 发布于 2007-10-22 16:29:00
针对疑惑的两处,我的解答如下:
程序段中的第1处:
IF NOT V1 THEN
X=X-1
ENDIF
它是个块IF语句,条件是NOT V1
如果V1为0,则为假,条件NOT V1则为真,执行x=x-1
如果V1为非0数,则为真,条件NOT V1则为假,不执行块IF语句.
至于程序段中的第2处:
IF V2 THEN X=10
它为行IF语句,条件是V2
如果V2是0,则为假,不执行THEN后语句
如果V2是非0数,则为真,执行x=10
具体V1,V2的值是多少,由前面的语句决定.
我来回复