FOR ... E N D F O R 命 令

FOR ... E N D F O R 命 令 - 图1按指定的次数重复执行一组命令 .

语 法

FOR Var = nInitialValue TO nFinalValue [STEP nIncremen t]

Commands

[EXIT]

[LOOP] ENDFOR | NEXT

参 数 描 述

Var

FOR ... E N D F O R 命 令 - 图2FOR ... E N D F O R 命 令 - 图3FOR ... E N D F O R 命 令 - 图4指 定 一 个 变 量 或 数 组 元 素 作 为 计 数 器 在 执 行 FOR ... ENDFOR 语 句 之 前变 量 或 数 组 不 必 存 在

nInitialValue TO nFinalValue

FOR ... E N D F O R 命 令 - 图5FOR ... E N D F O R 命 令 - 图6nInitialValue 为 计 数 器 的 初 始 值 nFinalValue 为 计 数 器 的 终 止 值

STEP nIncrement

FOR ... E N D F O R 命 令 - 图7FOR ... E N D F O R 命 令 - 图8FOR ... E N D F O R 命 令 - 图9FOR ... E N D F O R 命 令 - 图10FOR ... E N D F O R 命 令 - 图11nIncrement 显 示 计 数 器 增 加 或 减 少 的 数 量 如 果 nIncrement 显 示 为 负 数计 数 器 将 减 少 如 果 省 略 这 一 步 计 数 器 默 认 为 1

Commands

FOR ... E N D F O R 命 令 - 图12FOR ... E N D F O R 命 令 - 图13指 定 要 执 行 的 V isual FoxPro 命 令 Commands 可 以 包 含 任 意 数 目 的 命 令

EXIT

FOR ... E N D F O R 命 令 - 图14FOR ... E N D F O R 命 令 - 图15FOR ... E N D F O R 命 令 - 图16在 FOR ... ENDFOR 循 环 中 将 控 制 权 传 递 给 紧 接 在 ENDFOR 后 面 的 命 令可 以 在 FOR 与 ENDFOR 之 间 的 任 何 地 方 放 置 EXIT

LOOP

FOR ... E N D F O R 命 令 - 图17FOR ... E N D F O R 命 令 - 图18将 控 制 权 直 接 返 给 FOR 子 句 不 再 执 行 LOOP 与 ENDFOR 之 间 的 语 句 计

数 器 正 常 递 增 或 递 减

就 像 执 行 到

ENDFOR 一 样

可 以 在

FOR 与 E N D F O R

之 间 的 任 何 地 方 放 置

L O O P

FOR ... E N D F O R 命 令 - 图19FOR ... E N D F O R 命 令 - 图20FOR ... E N D F O R 命 令 - 图21说 明

FOR ... E N D F O R 命 令 - 图22FOR ... E N D F O R 命 令 - 图23可以用变量或数组元素作为计数器 指定 FOR ... ENDFOR 循环中 Visual FoxPro 命令的执行次数

FOR ... E N D F O R 命 令 - 图24FOR ... E N D F O R 命 令 - 图25FOR ... E N D F O R 命 令 - 图26FOR ... E N D F O R 命 令 - 图27FOR ... E N D F O R 命 令 - 图28FOR ... E N D F O R 命 令 - 图29FOR ... E N D F O R 命 令 - 图30FOR ... E N D F O R 命 令 - 图31FOR ... E N D F O R 命 令 - 图32FOR ... E N D F O R 命 令 - 图33在遇到 ENDFOR 或 NEXT 之前 始终执行 FOR 后面的 Visual FoxPro 命令 执行过程中 每循环一次 计数器 MemVarName 都会递增 增量为 nIncrement 如 果 省 略 STEP 子句 则计数器每次的增量为 1 然后把计数器的值与 nFinalValue 作比较

FOR ... E N D F O R 命 令 - 图34FOR ... E N D F O R 命 令 - 图35FOR ... E N D F O R 命 令 - 图36FOR ... E N D F O R 命 令 - 图37FOR ... E N D F O R 命 令 - 图38如果计数器的值小于或等于 nFinalValue 将再次执行 FOR 语句后的命令 如果计数器的值大于 nFinalValue 则退出 FOR ... ENDFOR 循环 程序继续执行 ENDFOR 或NEXT 之后的第一条命令

FOR ... E N D F O R 命 令 - 图39FOR ... E N D F O R 命 令 - 图40注 意 nInitialValue nFinalValuenIncrement 只 能 是 初 次 读 入 的 值 在 循 环

FOR ... E N D F O R 命 令 - 图41过 程 中 更 改 计 数 器 M emVarName 的 值 将 影 响 循 环 的 执 行 次 数

FOR ... E N D F O R 命 令 - 图42FOR ... E N D F O R 命 令 - 图43FOR ... E N D F O R 命 令 - 图44FOR ... E N D F O R 命 令 - 图45如果 nIncrement 为负 且初始值 nInitialValue 大于最终值 nFinalValue 则每经过一次循环 计数器都将递减

示 例

FOR ... E N D F O R 命 令 - 图46在 示例 1 中显示从 1 到 10 的数字

FOR ... E N D F O R 命 令 - 图47FOR ... E N D F O R 命 令 - 图48FOR ... E N D F O R 命 令 - 图49FOR ... E N D F O R 命 令 - 图50示例 2 使用变量设置初始值 终止值和 步进 值以显示 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 && 显示 company 名称

ENDFOR

请 参 阅

DO CASE...ENDCASE ,DO WHILE...ENDDO,IF...ENDIF, SCAN ... ENDSCAN