# Loop expressions

Looping specifies how to handle elements that can occur multiple times. For more information about functions used in loop expressions, see [Loop](https://help.qlik.com/talend/r/en-US/8.0/data-mapper-functions-reference-guide/loop-functions).

Looping elements are elements with the Occurs Max parameter either set to a number greater than 1 or to -1. The specification for the looping is in the Loop tab of each looping element, and is automatically generated when you map an element from the input to the output.

In most cases, the automatically generated looping is sufficient. However, if you require filtering or sorting, or if you want the output loop to loop in a different way, you must modify the loop expression.

The following examples describe common looping issues and how to map them.

### In this section

* [Mapping matching loops](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/mapping-matching-loops)
* [Mapping nested loops](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/mapping-nested-loops)
* [Mapping a loop to a non-looping element](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/mapping-loop-to-non-looping-element)
* [Mapping two loops into a single loop](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/mapping-two-loops-into-single-loop)
* [Mapping a recursive loop](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/mapping-recursive-loop)
* [Unrolling a loop](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/unrolling-loop)
* [Splitting a loop](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/splitting-loop)
* [Generating and configuring an AgConcat expression](https://help.qlik.com/talend/en-US/data-mapper-user-guide/8.0-R2024-09/generating-and-configuring-agconcat-expression)