Skip to content

控制流语句


指导执行流程的语句。

描述

控制流语句控制程序从一条语句到下一条语句的执行;它们基于某种条件决定哪些语句在何时执行。条件始终是某个求值为真或假的表达式。大多数控制流语句检查某种条件,并据此指导代码流,即执行或不执行某个代码块(除了转移控制流语句和 DO..LOOP,后者具有可选条件)。此外,所有控制流语句都可以嵌套,即语句块内可以包含其他控制流语句。

控制流语句有三种类型:转移型、分支型和循环型。转移控制流语句将执行转移到代码的不同部分。分支控制流语句根据条件执行特定的语句块,而循环控制流语句在满足或未满足条件期间重复执行代码。

转移语句

这些语句用于无条件或有条件、临时或永久的执行转移。"ON" 变体根据条件从文本标签列表中选择一个转移点。只要分支不跨越任何局部数组、变长字符串或对象定义,就可以在不同作用域之间转移执行。

GOTO

无条件地将执行转移到由文本标签定义的代码中的另一点。执行从标签后的第一条语句恢复。

GOSUB

无条件且临时地将执行转移到由文本标签定义的代码中的另一点。执行从标签后的第一条语句恢复。然后通过 RETURN 关键字将执行带回其原始位置。是的,GOSUB 语句可以嵌套,即在第一个对应的 RETURN 之前可以执行多个 GOSUB 语句,但在整个应用程序过程中必须始终有对应的 RETURN

ON GOTO

根据表达式的值,将执行转移到由文本标签定义的多个代码点之一。

ON GOSUB

根据表达式的值,临时将执行转移到由文本标签定义的多个代码点之一。

分支语句

这些语句用于执行多个语句块中的一个。

IF..END IF

如果表达式求值为真(条件),则执行一个语句块。当且仅当表达式求值为假时,可以使用 ELSEIF 关键字在另一个表达式求值为真时执行另一个语句块。当且仅当所有这些表达式都求值为假时,可以使用 ELSE 关键字执行一个语句块。

SELECT..END SELECT

执行多个语句块中的一个。这种分支语句尝试匹配一个表达式和多个 case 表达式的条件。case 表达式按给定顺序检查,第一个满足条件的 case 表达式会执行其关联的语句块。与 IF..END IF 类似,可以在没有其他 case 表达式满足条件时定义默认 case,并且与循环控制流语句一样,可以使用 EXIT 关键字提前跳出 case 的语句块。

循环语句

这些语句用于重复执行一个语句块。在语句块中,可以使用 CONTINUE 关键字提前重新执行循环,或使用 EXIT 关键字退出循环。无论循环是由条件终止还是由 EXIT 关键字终止,执行始终从块后的第一条语句开始。

WHILE..WEND

在某个表达式求值为真(条件)期间执行一个语句块。在执行语句块之前先对表达式求值和检查。

FOR..NEXT

WHILE..WEND 类似,但更适合循环固定次数。此循环用初始值初始化所谓的迭代器,并将其与测试表达式进行比较。如果迭代器小于或等于测试表达式(条件),则执行语句块,并递增迭代器。循环也可以设置为每次循环后递减迭代器,在这种情况下,它将与测试表达式进行大于或等于的比较。迭代器可以是 INTEGERDOUBLE 等数值数据类型,也可以是用户定义类型。用户定义类型必须实现 operator for

DO..LOOP

循环控制流语句中最通用的一种,此循环可以在表达式求值为真(条件)时或直到表达式求值为真时执行一个语句块。它也可以将表达式的检查延迟到块第一次执行之后,适用于需要 至少执行一次 语句块的情况。最后,此循环可以完全没有条件,只是无限循环。

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系