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

DO..LOOP

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

返回 目录

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