在vfp中where与for有什么区别

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 17:01:10
在vfp中where与for有什么区别

在vfp中where与for有什么区别
在vfp中where与for有什么区别

在vfp中where与for有什么区别
DO WHILE n < 100
FOX循环是按指定的次数重复执行一组命令.
FOR Var = nInitialValue TO nFinalValue [STEP nIncrement]
Commands
[EXIT]
[LOOP]
ENDFOR | NEXT
参数
Var
指定作为计数器的内存变量或数组元素.在 FOR ...ENDFOR 语句执行之前,此内存变量或数组元素不一定存在.
nInitialValue TO nFinalValue
nInitialValue 是计数器的初始值,而 nFinalValue 是计数器的最终值.
STEP nIncrement
nIncrement 是计数器递增或递减的步长.如果 nIncrement 为负,则计数器递减;如果省略 STEP 子句,计数器每次的增量为 1.
Commands
指定要执行的 Visual FoxPro 命令,Commands 可以包含任意数目的命令.
EXIT
在 FOR ...ENDFOR 循环中,将控件权传递给紧接在 ENDFOR 后面的命令.可以在 FOR 与 ENDFOR 之间的任何地方放置 EXIT.
LOOP
将控件权直接返给 FOR 子句,不再执行 LOOP 与 ENDFOR 之间的语句.计数器正常递增或递减,就象执行到 ENDFOR 一样.可以在 FOR 与 ENDFOR 之间的任何地方放置 LOOP.
备注
可以用内存变量或数组元素作为计数器,指定 FOR ...ENDFOR 循环中 Visual FoxPro 命令的执行次数.
在遇到 ENDFOR 或 NEXT 之前,始终执行 FOR 后面的 Visual FoxPro 命令.执行过程中,每循环一次,计数器 MemVarName 都会递增,增量为 nIncrement(如果省略 STEP 子句,则计数器每次的增量为 1),然后把计数器的值与 nFinalValue 作比较.如果计数器的值小于或等于 nFinalValue,将再次执行 FOR 语句后的命令;如果计数器的值大于 nFinalValue,则退出 FOR ...ENDFOR 循环,程序继续执行 ENDFOR 或 NEXT 之后的第一条命令.
注意 nInitialValue、nFinalValue 和 nIncrement 只能是初次读入的值.在循环过程中更改计数器 MemVarName 的值将影响循环的执行次数.
如果 nIncrement 为负,且初始值 nInitialValue 大于最终值 nFinalValue,则每经过一次循环,计数器都将递减.
示例
在示例 1 中,显示数字 1 到 10.
示例 2 使用内存变量作为初始值、最终值和 STEP 值,显示 customer 表 2 号到 10 号记录中所有记录号为偶数的记录.
* 示例 1
CLEAR
FOR gnCount = 1 TO 10
gnCount
ENDFOR
* 示例 2
SET TALK OFF
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && 打开 Customer 表
STORE 2 TO gnI && 初始值
STORE 10 TO gnJ && 最终值
STORE 2 TO K && 步长值
FOR gnCount = gnI TO gnJ STEP K
GOTO gnCount && 移动记录指针
DISPLAY company && 显示公司名字
ENDFOR