表4-6 逻辑运算规则(T为真,F为假)
|
A |
B |
NOT A |
A AND B |
A OR B |
A XOR B |
A EQV B |
A IMP B |
|
T |
T |
F |
T |
T |
F |
T |
T |
|
T |
F |
F |
F |
T |
T |
F |
F |
|
F |
T |
T |
F |
T |
T |
F |
T |
|
F |
F |
T |
F |
F |
F |
T |
T |
与关系运算一样,逻辑运算也可以用来判断程序的流程。比如:
IF X>100 AND Y<200 THEN……
当对数值进行逻辑运算时,操作数必须在-2147483648到+2147483647的范围内。如果超出此范围,就会产生溢出错误,如果操作数为负值,则以它对应的补码形式表示。参加运算的数都要置换成整型(16位)或长整型(32位)二进制数。
字符串运算只有一个,即“十”,其作用是连接一个或多个字符串型常量、变量或函数,形成新的字符串。Quick BASIC有大量的内部函数,下面列出字符串函数及其功能,见表4-7。
表4-7 字符串函数及其功能列表
|
函 数 |
功 能 |
|
LEFT$(x$,n) |
取从x$左边开始的n个字符 |
|
RIGHT$(x$,n) |
取从x$右边开始的n个字符 |
|
MID$(x$,n,m) |
从x1$的第n个字符开始,取m个字符 |
|
INSTR(n,xl$,x2$) |
从xl$的第n个字符开始,查找x2$d x1$中的位置 |
|
CHR$(x) |
把ASCII码x转换为数值 |
|
VAL(x$) |
把数字字符串转换为数值 |
|
STR$(x) |
把x转换为数字字符串 |
|
UCASE$(x$) |
把x$的所有字母都变为大写 |
|
LCASE$(x$) |
把x$的所有字母都变为小写 |
|
LEN(x$) |
返回x$中字符的个数 |
|
STRINGe(n,m) |
返回长度为n的一个字符串 |
|
DATE$ |
返回系统日期 |
|
TIME$ |
返回系统时间 |
|
LTRIM$(x$) |
去掉x$的前面空格 |
|
RTRIM$(x$) |
去掉x$的末尾空格 |
学到这里,读者对表达式应该不陌生了,因为前面已经几次提到过并在例题中使用过表达式。Quick BASIC表达式是指利用运算符将若干运算量或操作数,包括常量、变量、函数、数组元素等连接起来的式子。表达式可以分为算术表达式、关系表达式、字符运算表达式等。在4.4节中已经提到过各类表达式,本节进一步介绍表达式求值的执行顺序。
因为表达式可能饮食多种运算,计算机将按一定的顺序对表达式进行求值。求值顺序通常按下述顺序执行。
(1)首先进行函数运算。
(2)其次进行算术运算,算术运算顺序见表4-4。
(3)接着进行关系运算。
(4)最后进行逻辑运算,逻辑运算的顺序为:
NOT AND OR XOR EQV IMP
但要注意,当指数和负号相邻时,负号优先,比如:
?5^-2的执行结果为0.04(1/25),而不是-25。
连加或连乘没有固定的执行顺序,但当连续调用FUNCTION过程就会出错,比如:
A=B(x)+G(x)+D(x)
如果上述三个过程中的一个改变了x或共享变量的值,运算顺序可能会对运算结果产生影响。为了防止此类问题的发生,我们可以首先把FUNCTION的调用结果赋给临时变量,然后再相加。可以把上例改为:
M=B(x):N=C(x):P=D(x)
A=M+N+P
我们在书写表达式时,应当注意:
(1)乘号(*)不能省略,也不能用“.”或“×”代替。
(2)通常情况下,不允许两个运算符相连,要用括号隔开。
(3)乘幂^表示自乘,如M^N表示N个M连乘,当M或N不是单个常量或变量时,要用圆括号括起来,比如:(M+N)^(P+6)。