# 指令碼控制陳述式

Qlik Sense 指令碼由多個陳述式組成。陳述式可以是一般的指令碼陳述式或是指令碼控制陳述式。

控制陳述式通常用於控制指令碼執行的流程。控制陳述式的每個子句都必須保持在一個指令碼行內，並可以分號或行結尾終止。

控制陳述式絕不可套用前置詞，但前置詞 when 和 unless 是例外，它們可用於一些特定的控制陳述式。

所有的指令碼關鍵字皆可以小寫和大寫字元的任意組合輸入。

使用每個函數中的下拉式功能表，以查看每個函數的簡要描述及語法。按一下語法描述中的函數名稱，以取得進一步詳細資料。

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Call

call 控制陳述式會呼叫必須由先前的 sub 陳述式定義的副程式。

[**Call**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Call.htm) name ( [ paramlist ])

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Do..loop

do..loop 控制陳述式是指令碼反覆運算建構，這會執行一或數個陳述式，直到符合邏輯條件為止。

[**do**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/do.htm) [ ( while | until ) condition ] [statements]  
[exit do [ ( when | unless ) condition ] [statements]  
loop [ ( while | until ) condition ]

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Exit script

此控制陳述式可停止指令碼執行。它可以插入指令碼的任一處。

[**exit script**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/exit%20script.htm)[ (when | unless) condition ]

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### For each ..next

for each..next 控制陳述式是指令碼反覆運算建構，這會對於逗號分隔清單中的各個值執行一或數個陳述式。將會為清單的各個值，執行由 for 與 next 括住之迴圈內的陳述式。

[**For Each**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/For%20Each.htm) var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### For..next

for..next 控制陳述式是包含計數器的指令碼反覆運算建構。將對於所指定上下限之間的各個 counter 變數值，執行 for 與 next 所括住迴圈之內的陳述式。

[**For**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/For.htm)counter = expr1 to expr2 [ stepexpr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### If..then

if..then 控制陳述式是一種陳述式選項建構，會根據一或數個邏輯條件強制指令碼執行遵照不同的路徑。

資訊備註由於 if..then 陳述式是控制陳述式，因而會以分號或行尾來結束，所以這四個可能的子句 (if..then、elseif..then、else 和 end if) 都不能超過行邊界。

[**If**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/If.htm) condition then

[ statements ]

{ elseif condition then

[ statements ] }

[ else

[ statements ] ]

end if

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Sub

sub..end sub 控制陳述式會定義可從 call 陳述式呼叫的副程式。

[**Sub**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Sub.htm) name [ ( paramlist )] statements end sub

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Switch

switch 控制陳述式是一個指令碼選項建構，會根據運算式的值強制指令碼執行遵照不同的路徑。

[**Switch**](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Switch.htm) expression {case valuelist [ statements ]} [default statements] end switch