# 控制语句

修改图表数据时，您使用的是 Qlik Sense 脚本的子集，该子集由许多语句组成。语句可以是常规脚本语句，也可以是脚本控制语句。

控制语句通常用于控制脚本执行的流程。控制语句的每个子句必须保持在一个脚本行内，并且可以由分号或行尾终止。

前缀从不应用于控制语句。

所有脚本关键字都可以使用小写和大写字符的任意组合来键入。

使用每个函数的下拉列表可查看每个函数的简短描述和语法。单击语法描述中的函数名称可了解更多信息。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Call

call 控制语句可调用必须由先前的 sub 语句定义的子例程。

[**Call**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/Call.htm) name ( [ paramlist ])

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Do..loop

do..loop 控制语句是一个脚本迭代构造，可不断执行一个或几个语句，直到逻辑条件得到满足为止。

[**do**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/do.htm) [ ( while | until ) condition ] [statements]  
[exit do [ ( when | unless ) condition ] [statements]  
loop [ ( while | until ) condition ]

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### End

End 脚本关键字用于关闭 If、Sub 和 Switch 子句。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Exit

Exit 脚本关键字是 Exit Script 语句的一部分，但也可用于退出 Do、For 或 Sub 子句。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Exit error

Exit error 语句结束脚本执行并引发用户定义的脚本错误。

[**exit error**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/exit%20error.htm) expression[ (when | unless) condition ]

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Exit script

此控制语句可以停止执行脚本。可以插入到脚本的任何位置。

[**exit-script**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/exit-script.htm)[ (when | unless) condition ]

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### For..next

for..next 控制语句是一个带有计数器的脚本迭代构造。指定的高低限值之间的计数器变量的每个值均会执行由 for 和 next 限定的循环中的语句。

[**For**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/For.htm) counter = expr1 to expr2 [ stepexpr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### For each ..next

for each..next 控制语句是一个脚本迭代构造，可为逗号分隔列表中的每个值执行一个或几个语句。列表中的每个值均会执行由 for 和 next 限定的循环中的语句。

[**for-each**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/for-each.htm) var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### If..then

if..then 控制语句是一个脚本选择结构，其可根据一个或几个逻辑条件按照不同路径强制执行脚本。

信息注释由于 if..then 语句是控制语句，因此以分号或行尾结束，其四个可能的子句（if..then、elseif..then、else 和 end if）中的每一个都不得跨越行边界。

[**If**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/If.htm) condition then

[ statements ]

{ elseif condition then

[ statements ] }

[ else

[ statements ] ]

end if

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Next

Next 脚本关键字用于关闭 For 循环。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Sub

sub..end sub 控制语句用于定义可从 call 语句中调用的子例程。

[**Sub**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/Sub.htm) name [ ( paramlist )] statements end sub

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### Switch

switch 控制语句是一个脚本选择项构造，根据表达式值，以不同路径强制执行脚本。

[**Switch**](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/Switch.htm) expression {case valuelist [ statements ]} [default statements] end switch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-control-statements.htm)

#### To

To 脚本关键字用于多个脚本语句中。