STEP(程序设计)

将一组语句重复执行指定的次数的程序。

counter

For 语句的必选项。数值变量。它是循环的控制变量。

datatype

如果尚未声明 counter,则是必选项。counter 的数据类型。

start

必选。数值表达式。counter 的初始值。

end

必选。数值表达式。counter 的最终值。

step

可选。数值表达式。每次循环后 counter 的增量。

statements

可选。放在 For 和 Next 之间的一条或多条语句,它们将运行指定的次数。

Exit For

可选。将控制转移到 For 循环外。

Next

必选。结束 For 循环的定义。

当需要将一组语句重复执行设置好的次数时,请使用 For...Next 结构。

当事先不知道需要执行多少次循环中的语句时,While...End While 语句 (Visual Basic) 或 Do...Loop 语句 (Visual Basic) 循环可很好地发挥作用。但是,如果您希望让循环运行特定次数,则 For...Next 是较好的选择。您需要在第一次输入循环时确定迭代次数。

step 的值可以是正数或负数。它将按以下方式决定循环处理过程:

Step 值

循环执行的条件

正数或零

counter <= end

负数

counter >= end

如果没有指定,则 step 的默认值为 1。

数据类型。counter 的数据类型通常是 Integer,但也可以是任何支持大于或等于 (>=)、小于或等于 (<=)、加法 (+) 和减法 (-) 运算符的类型。只要支持所有这些运算符,该数据类型甚至可以是用户定义的类型。

start、end 和 step 表达式通常计算为 Integer 类型,但也可以计算为任何拓宽到 counter 的类型的数据类型。如果要将用户定义的类型用于 counter,这意味着您可能必须定义 CType 转换运算符,来将 start、end 或 step 的类型转换为 counter 的类型。

声明。如果未在此循环外声明 counter,则必须在 For 语句内声明它。这种情况下,counter 的范围就是循环的主体。但是,不能既在循环外声明 counter,又在循环内声明 counter。

迭代次数。Visual Basic 仅在循环开始之前计算一次迭代值 start、end 和 step。如果语句块更改 end 或 step,这些更改不影响循环的迭代。

嵌套循环。可以将一个循环放在另一个循环内以嵌套 For 循环。不过,每个循环必须具有唯一的 counter 变量。下面的结构是有效的。

如果先遇到外部嵌套级别的 Next 语句,后遇到内部嵌套级别的 Next 语句,编译器将发出错误信号。不过,仅当在所有 Next 语句中都指定了 counter 时,编译器才能检测到这种重叠错误。

标识控制变量。可以选择在 Next 语句中指定 counter。这将提高程序的可读性,尤其是在具有嵌套的 For 循环的情况下。必须指定与相应的 For 语句中出现的变量相同的变量。

将控制转移到循环外。Exit 语句 (Visual Basic) 将控制立即转移到 Next 语句后面的语句。如果检测到使继续迭代不必要或不可能的条件(如错误值或终止请求),则可能需要退出循环。而且,如果在 Try...Catch...Finally 中捕获异常,则可以在 Finally 块的结尾使用 Exit For。

可以在 For 循环中的任何位置插入任意数量的 Exit For 语句。Exit For 通常在计算特定条件后使用,例如在 If...Then...Else 结构中。

无限循环。Exit For 的一种用途是测试可能导致“无限循环”(即运行次数非常多甚至无限的循环)的条件。如果检测到这样的条件,就可以使用 Exit For 退出循环。有关更多信息,请参见 Do...Loop 语句 (Visual Basic)。

进入循环。当开始执行 For...Next 循环时,Visual Basic 将计算start、end 和 step(仅此一次)。然后将 start 赋予 counter。运行语句块之前,它先将 counter 与 end 进行比较。如果 counter 已经超过了结束值,则 For 循环终止,并且控制将传递给 Next 语句后面的语句。否则,将运行语句块。

循环的迭代。每次 Visual Basic 遇到 Next 语句时,都按 step 递增 counter,然后返回到 For 语句。它再次将 counter 与 end 进行比较,并再次根据结果运行块或者终止循环。这一过程将一直持续下去,直到 counter 传递 end 或者遇到 Exit For 语句为止。

循环的终止。在 counter 传递 end 之后,循环才会终止。如果 counter 等于 end,则循环继续。如果 step 为正数,确定是否运行循环代码块的比较运算将为 counter <= end;如果 step 为负数,则为 counter >= end。

更改迭代值。如果在循环内更改 counter 的值,将会使代码的阅读和调试变得更加困难。更改 start、end 或 step 的值不会影响首次进入循环时所确定的迭代值。

下面的示例演示了不同 Step 值情况下的 For...Next 嵌套结构。

前面的示例创建了一个字符串,该字符串包含 10 个从 0 到 9 的数字,各数字之间用一个空格隔开。每循环一次,外部循环都使循环计数器变量递减一次。

相关词汇