STEP(程式设计)
将一组语句重複执行指定的次数的程式。
基本介绍
- 中文名:步进
- 外文名:Step
- 语言:Visual Basic
各部分说明
- counter
- For 语句的必选项。数值变数。它是循环的控制变数。
- datatype
- 如果尚未声明 counter,则是必选项。counter 的数据类型。
- start
- 必选。数值表达式。counter 的初始值。
- end
- 必选。数值表达式。counter 的最终值。
- step
- 可选。数值表达式。每次循环后 counter 的增量。
- statements
- 可选。放在 For 和 Next 之间的一条或多条语句,它们将运行指定的次数。
- Exit For
- 可选。将控制转移到 For 循环外。
- Next
- 必选。结束 For 循环的定义。
用法
Forcounter[Asdatatype]=startToend[Stepstep][statements][ExitFor][statements]Next[counter]
备注
当需要将一组语句重複执行设定好的次数时,请使用 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 变数。下面的结构是有效的。
ForiAsInteger=1To10ForjAsInteger=1To10ForkAsInteger=1To10NextkNextjNexti
如果先遇到外部嵌套级别的 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 嵌套结构。
Dimwords,digitAsIntegerDimthisStringAsString=""Forwords=10To1Step-1Fordigit=0To9thisString&=CStr(digit)NextdigitthisString&=""Nextwords
前面的示例创建了一个字元串,该字元串包含 10 个从 0 到 9 的数字,各数字之间用一个空格隔开。每循环一次,外部循环都使循环计数器变数递减一次。