# Sentencias de control de script

El script de QlikView se compone de diversas sentencias. Una sentencia puede ser de dos tipos, una sentencia normal de script o una sentencia de control de script.

Las sentencias de control en cambio se suelen emplear para controlar el flujo de ejecución del script. Cada cláusula de una sentencia de control debe hallarse dentro de una línea de script y puede acabar en punto y coma o un final de línea.

Los prefijos no se aplican nunca a sentencias de control, a excepción de los prefijos when y unless que sí pueden utilizarse con unas pocas sentencias de control específicas.

Todas las palabras clave del script pueden escribirse con cualquier combinación de caracteres en mayúscula o minúscula.

Utilice el desplegable de cada función para ver una breve descripción y la sintaxis de cada función. Haga clic en el nombre de la función en la descripción de la sintaxis si desea más detalles.

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Call

La sentencia de control call llama a una subrutina que debe ser definida por una sentencia sub previa.

[**Call**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Call.htm) name ( [ paramlist ])

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Do..loop

La sentencia de control do..loop crea un bucle que ejecuta una o varias sentencias hasta cumplirse una condición lógica o cuando ésta se cumple.

[**do**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/do.htm) [ ( while | until ) condition ] [statements]  
[exit do [ ( when | unless ) condition ] [statements]  
loop [ ( while | until ) condition ]

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Exit script

Esta sentencia de control detiene la ejecución del script. Puede insertarse en cualquier parte del script.

[**exit script**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/exit%20script.htm)[ (when | unless) condition ]

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### For each ..next

La sentencia de control for each..next crea un bucle que ejecuta una o varias sentencias para cada valor en una lista separada por comas. Las sentencias que están dentro del bucle, entre for y next se ejecutarán con cada valor de la lista.

[**For Each**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/For%20Each.htm) var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### For..next

La sentencia de control for..next crea un bucle con un contador. Las sentencias que están dentro del bucle, encerradas entre for y next se ejecutarán por cada valor de la variable contador entre los límites inferior y superior especificados e incluidos éstos.

[**For**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/For.htm)counter = expr1 to expr2 [ stepexpr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### If..then

La sentencia de control if..then crea una cláusula condicional que hace que la ejecución del script siga diferentes caminos dependiendo de una o varias condiciones lógicas fijadas.

Nota informativaComo la sentencia if..then es una sentencia de control y como tal termina con un punto y coma o un final de línea, cada una de sus tres cláusulas posibles (if..then, elseif..then, else y end if) no debe sobrepasar el límite de una línea.

[**If**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/If.htm) condition then

[ statements ]

{ elseif condition then

[ statements ] }

[ else

[ statements ] ]

end if

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Sub

La sentencia de control sub..end sub define una subrutina, la cual puede ser invocada mediante una sentencia call.

[**Sub**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Sub.htm) name [ ( paramlist )] statements end sub

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/script-control-statements.htm)

#### Switch

La sentencia de control switch es una construcción de script que obliga a que la ejecución del script siga diferentes caminos dependiendo del valor de una expresión.

[**Switch**](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Switch.htm) expression {case valuelist [ statements ]} [default statements] end switch