<sub class="descriptionSection">04-10-2024 04:18:pm // #C // [[Programmierung]]</sub>
____
Als Anweisung in C++ bezeichnet man bestimmte Keywords in der Programmiersprache.
## Schleifen
In C++ gibt es drei Arten von Schleifen.
- Kopfgesteuerte Schleife
- Zählergesteuerte Schleife
- Fußgesteuerte Schleife
Die Zählergesteuerte Schleife ist hier ein besondere, da sie eigentlich unter jede andere Schleife auch fallen könnte. Gemeint ist hiermit aber vor allem die [[#Zählergesteuerte Schleife (For-Schleife)|For-Schleife]]
## Zählergesteuerte Schleife (For-Schleife)
Eine Zählergesteuerte Schleife inkrementiert einen Zähler automatisch **und hat eine bedingung**. Beispiel:
```cpp
for(int i = 0, i < 10, i++){
cout << "Zahl: " << i << endl;
}
```
> [!abstract] Anweisungsabfolge in Zählergesteuerten Schleifen
> In einer Zählergesteurten Schleife werden die Anweisungen im Schleifenkopf von **links nach rechts** nacheinander ausgeführt.
> Im Beispiel würde das bedeuten:
> 1. In der ersten Iterierung wird die variable "i" deklariert und initialisiert
> 2. In jeder anderen Iterierung wird zuerst:
> 1. Gecheckt ob i kleiner als 10 ist
> 2. Dann i um eins erhört
> Somit würd das heißen, dass sobald I größer als 10 ist es nicht nocheinmal erhört wird.
Der Output ist hier:
```text
Zahl: 0
Zahl: 1
Zahl: 2
Zahl: 3
Zahl: 4
Zahl: 5
Zahl: 6
Zahl: 7
Zahl: 8
Zahl: 9
```
Der Vorteil bei dieser Art von Schleife ist, dass man bedingungen und Zähler, etc. sparen kann. Das verbessert meist Readability aber auch nicht viel mehr.
## Kopfgesteuerte Schleife
Eine Kopfgesteuerte Schleife checkt die bedingung **am anfang der Schleife**, zähler und bedingungen müssen hier selbst gemanaged werden:
```cpp
while(i < 120){ //Hier wird die beindung gecheckt
cout << "Hello World" << endl;
i++;
}
```
Diese Schleife kann von Vorteil sein, wenn die Schleife nur unter bestimmten bedingungen ausgeführt wird. Die Kopfgesteuerte Schleife kann im gegesenatz zur Fußgesteuerten Schleife (die immer mindestens einmal läuft) auch garnicht laufen:
```cpp
int i = 130;
while (i < 120){ //Schleife läuft nicht, da i > 130 ist
cout << "Hello World" << endl;
i++;
}
```
## Fußgesteuerte Schleife
Die Fußgesteuerte Schleife checkt am **Ende der Schleife** ob eine Bedingung true oder false ist.
```cpp
do{
cout << "Hello World" << endl;
i++;
}
while(i < 120) //Hier wird gecheckt
```
Diese Schleife läuft immer mindestens einmal.
## Inkrementieren und Dekrementieren
Für die Schliefen ist meistens ein Zähler wichtig, hierfür gibt es das Inkrementieren und Dekrementieren was grundsätzlich bedeutet das man einen Zähler erhöt oder verringert
### Prä- und Postinkrement
Es gibt einen Inkrement und Dekrement operator:
```text
Inkrement Operator: ++
Dekrement Operator: --
```
Unt er Prä und Postinkrement versteht man wann das Programm eine Variable erhöt oder verringert.
Prä-inkrement bedeutet, dass die Variable geändert wird, **bevor sie verwendet wird**:
```cpp
int x = 5;
cout << ++x << endl; // Gibt 6 aus
cout << x << endl; //Gibt 6 aus
```
> [!NOTE] Code Readability
> Da dieser Operator nur selten genutzt wird, sollte extra Dokumentiert werden wie er genau genutzt wird und vor allem warum
Post Inkrement beduete, dass die Variable geändert wird, **nachdem sie verwendet wurde**:
```cpp
int x = 5;
cout << x++ << endl; // Gibt 5 aus
cout << x << endl; // Gibt 6 aus
```