VFP里下面程序的运行结果是________?SET EXACT ONs="ni"+SPACE(2)IF s=="ni"IF s="ni""one"ELSE"two"ENDIFELSEIF s="ni""three"ELSE"four"ENDIFENDIFRETURNA)oneB)twoC)threeD)four

问题描述:

VFP里下面程序的运行结果是________?
SET EXACT ON
s="ni"+SPACE(2)
IF s=="ni"
IF s="ni"
"one"
ELSE
"two"
ENDIF
ELSE
IF s="ni"
"three"
ELSE
"four"
ENDIF
ENDIF
RETURN
A)one
B)two
C)three
D)four

SET EXACT ON &&指定比较不同长度的 2 个字符串时,使用的规则.
s="ni"+SPACE(2) &&S="ni "
IF s=="ni" &&==为完全比较,不受SET EXACT的影响,所以S不等于ni
IF s="ni"
"one"
ELSE
"two"
ENDIF
ELSE &&程序直接跳到此处
IF s="ni" &&因为EXACT为 ON所以S的值"ni "后面的两个空格被忽略,与“ni”相等,判断为T
"three" &&输出"three"+++++++++++++所以答案是C++++++++
ELSE
"four"
ENDIF
ENDIF
RETURN
SET EXACT
指定比较不同长度的 2 个字符串时,使用的规则.
ON
指定在比较字符串数据是否相等时,表达式必须逐字符匹配.
在两个表达式的较短的一个的右边加上空格或零(0)字节,以使它与较长表达式的长度相匹配.但是,在比较中的任何表达式尾部的空格或零字节都被忽略.
OFF 表达式必须逐字符匹配,直到表达式右边达到结尾.(默认)