while

 

Die Syntax lautet:

 

while( expression )

statement

 

Die Anweisungen in statement werden solange ausgeführt, bis expression den Wert 0 annimmt.

Eine "berühmte" while-Kontrollstruktur ist die Nachrichtenschleife aus C/WinAPI-Programmen:

 

while( GetMessage( &msg, NULL, 0, 0 ) )

{

        TranslateMessage( &msg );

        DispatchMessage ( &msg );

}

return msg.wParam;

 

Solange der Ausdruck GetMessage( &msg, NULL, 0, 0 ) einem Wert ungleich 0 entspricht, wird die while-Schleife nicht verlassen und die drei Funktionen GetMessage(...), TranslateMessage(...) und DispatchMessage(...) werden ständig ausgeführt.

 

do / while

 

Die Syntax ist in diesem Fall:

 

do statement while( expression );

 

Zunächst wird statement ausgeführt.

 

Anschließend wird expression ausgewertet. Ist es ungleich 0, wird die Schleife fortgeführt, ansonsten beendet.

 

 

do-while-Kontrollstrukturen treten in der Windows-Programmierung nur sporadisch  auf.

Hier folgt einBeispiel aus der datei winfrm.cpp des MFC-Sourcecodes:

 

do

{

    lResult = ::SendMessage( hwFocus, WM_MOUSEWHEEL, ( wParam << 16 ) | keyState, lParam);

    hwFocus = ::GetParent( hwFocus );

}

while( lResult == 0 && hwFocus != NULL && hwFocus != hwDesktop );

 

 

Übersicht Keywords C++