====== Kontrollstrukturen ======
Qt ist nicht nur ein Framework zu Anwendungsenwicklung, es erweitert auch C++ um die Kontrollstrukturen ''foreach'' und ''forever''.
===== foreach =====
''foreach'' kann dazu verwendet werden über einen Container zu iterieren. Man kann also in folgendem Code die ''for''-Schleife durch eine ''foreach''-Schleife ersetzen:\\
''for'':
QList list;
// ...
for( int i = 0; i < list.size(); i++ )
std::cout << list[i] << std::endl;
''foreach'':
QList list;
// ...
foreach( int i, list )
std::cout << i << std::endl;
Die Laufvariable kann wie bei einer normalen ''for''-Schleife auch außerhalb der Schleife deklariert werden:
QList list;
// ...
int i;
foreach( i, list )
std::cout << i << std::endl;
Bei komplexeren Datenstrukturen sollten natürlich (bestenfalls konstante) Referenzen in der Schleife verwendet werden:
QList list;
// ...
foreach( const QString& str, list )
std::cout << str.toStdString() << std::endl;
Der Container kann innerhalb der Schleife zwar verändert werden, das hat jedoch keinen Einfluss auf den Schleifenablauf, da über eine Kopie iteriert wird. Dies hat jedoch aufgrund von [[frameworks:qt:general:implicitsharing|Implicit Sharing]] geringen Einfluss auf die Performance.
===== forever =====
''forever'' ist ein eigenes Schlüsselwort für Endlosschleifen. Sie kann daher nur durch ''return'', ''break'' usw. verlassen werden.
\\
FIXME sinnvolles Beispiel?