====== 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?