Der LaTeX-Kern selbst hat auf der Ebene für Klassen- und Paketautoren die Schleifen:
* `\@whilenum` *<Zahl>* *<Relation>* *<Zahl>* `\do {` *<Anweisungen>* `}`
Wobei für *<Zahl>* alles zulässig ist, was TeX als Zahl interpretiert, also beispielsweise `1`, `2`, `\value{page}`, `\oddsidemargin` (ja auch Längenregister, können als reine Zahl interpretiert werden), `\@tempctna`, `\numexpr 1*25\relax`. *<Relation>* ist entweder `<`, `=` oder `>`. Die *<Anweisungen>* werden dann so lange ausgeführt, solange die Bedingung gilt. Man muss also innerhalb der *<Anweisungen>* insbesondere dafür sorgen, dass die Bedingung irgendwann auch wirklich ungültig wird.
* `\@whiledim` *<Länge>* *<Relation>* *<Länge>* `\do {` *<Anweisungen>* `}`
Wobei für *<Länge>* alles zulässig ist, was TeX als *Dimension* interpretiert, also beispielsweise `1pt`, `2cm`, `\paperwidth`, `\dimexpr 1in+\oddsidemargin\relax`. *<Relation>* ist entweder `<`, `=` oder `>`. Die *<Anweisungen>* werden dann so lange ausgeführt, solange die Bedingung gilt. Man muss also innerhalb der *<Anweisungen>* insbesondere dafür sorgen, dass die Bedingung irgendwann auch wirklich ungültig wird.
* `\@whilesw` *<Bedingung>* `\fi {` *<Anweisungen>* `}`
Dabei ist *<Bedingung>* eine TeX-`\if`-Anweisung, also beispielsweise `\iffalse` (Achtung, das endet dann nie), `\if@odd\c@page`, `\if@twoside` (dürfte auch eher selten enden). Die *<Anweisungen>* werden dann so lange ausgeführt, solange die *<Bedingung>* gilt. Man muss also innerhalb der *<Anweisungen>* insbesondere dafür sorgen, dass die *<Bedingung>* irgendwann auch wirklich ungültig wird.
* `\@for` *<Makro>* `:=` *<Liste>* `\do {` *lt;Anweisungen>* `}`
Dabei ist *<Liste>* eine durch Kommata separierte Liste von Elementen. *<Makro>* wird in jedem Durchlauf als eines dieser Elemente definiert, bevor in dem Durchlauf *<Anweisungen>* ausgeführt werden. Ist *<Makro>* also beispielsweise `\test`, *<Liste>* `Hallo,Du,da` und *<Anweisungen>* `\test\space`, so würde die Schleife »`Hallo Du da `« ausgeben.
Neben diesen echten Schleifenkonstrukten, die nicht für Anwender gedacht sind, stellt der LaTeX-Kern Anwendern für die `picture`-Umgebung auch noch die Anweisung Iterator-Anweisung `\multiput` zur Verfügung, die dazu gedacht ist, dieselbe Ausgabe an mehreren Positionen innerhalb der `picture`-Umgebung durchzuführen. Näheres dazu ist der LaTeX-Anleitung zu entnehmen.
Neben diesen Schleifenkonstrukten des LaTeX-Kerns gibt es eine ganze Reihe von Paketen, die unterschiedliche Schleifenkonstrukte anbieten. Die Erklärung zu diesen sind in den jeweiligen Paketanleitungen zu finden. Eine kleine Auswahl dieser Kontrukte und der zugehören Pakete wäre:
* `\whiledo` – Paket [`ifthen`](http://ctan.org/pkg/ifthen), quasi der Klassiker
* `\multido` – Paket [`multido`](http://ctan.org/pkg/multido), eine Abspaltung aus PS-Tricks
* `\docsvlist` – Paket [`etoolbox`](http://ctan.org/pkg/etoolbox)
[`etoolbox`](http://ctan.org/pkg/etoolbox), der e-TeX-Werkzeugkasten
* `\dolistloop` – Paket [`etoolbox`](http://ctan.org/pkg/etoolbox)
[`etoolbox`](http://ctan.org/pkg/etoolbox), der e-TeX-Werkzeugkasten
* `\dolistcsloop` – Paket [`etoolbox`](http://ctan.org/pkg/etoolbox)
[`etoolbox`](http://ctan.org/pkg/etoolbox), der e-TeX-Werkzeugkasten
* `\forlistloop` – Paket [`etoolbox`](http://ctan.org/pkg/etoolbox)
[`etoolbox`](http://ctan.org/pkg/etoolbox), der e-TeX-Werkzeugkasten
* `\forlistcsloop` – Paket [`etoolbox`](http://ctan.org/pkg/etoolbox)
[`etoolbox`](http://ctan.org/pkg/etoolbox), der e-TeX-Werkzeugkasten
* `\DTLforeach` – Paket [`datatool`](http://ctan.org/pkg/datatool)
[`datatool`](http://ctan.org/pkg/datatool), Datenverarbeitungspaket
* `\foreach` – Paket [`pgf/tikz`](http://ctan.org/pkg/pgf)
[`pgf/tikz`](http://ctan.org/pkg/pgf), Grafik-Paket
* `\bool_do_unit:Nn` – Paket [`l3prg`](http://ctan.org/pkg/l3kernel)
[`l3prg`](http://ctan.org/pkg/l3kernel), Programmkonstrukte für LaTeX 3
* `\bool_do_while:Nn` – Paket [`l3prg`](http://ctan.org/pkg/l3kernel)
[`l3prg`](http://ctan.org/pkg/l3kernel), Programmkonstrukte für LaTeX 3
* `\bool_until_do:Nn` – Paket [`l3prg`](http://ctan.org/pkg/l3kernel)
[`l3prg`](http://ctan.org/pkg/l3kernel), Programmkonstrukte für LaTeX 3
* `\bool_while_do:Nn` – Paket [`l3prg`](http://ctan.org/pkg/l3kernel)
[`l3prg`](http://ctan.org/pkg/l3kernel), Programmkonstrukte für LaTeX 3
All diese Konstrukte mit Beispielen im Detail zu erklären, würde IMHO den Rahmen einer einzelnen Antwort sprengen. Darüber könnte man mehrere Artikel verfassen. Allein die [LaTeX-3-Kernpakete](http://ctan.org/pkg/l3kern) bieten eine große Anzahl an Schleifen und Iterationen. In vielen Paketen gibt es für Spezialanwendung auch weitere Iteratoren, beispielsweise um über die Ebenen einer Seitenstils von `scrlayer` zu iterieren. All diese aufzuführen ist aber allgemein eher wenig interessant. Vielmehr sollte man sich bei einer konkreten Aufgabenstellung auf die Suche nach einem dafür passenden Konstrukt machen.