kramann.info
© Guido Kramann

Login: Passwort:










7.1.6.2 Kontrollstrukturen in C und C++
  • Die Befehle, die Sie der Reihe nach angeben, werden auch der Reihe nach abgearbeitet.
  • Anders als bei typischen PC-Anwendungen sollte die Abarbeitung aller Ihrer Befehlszeilen hier zyklisch, also unendlich oft immer wieder erfolgen.
  • Das macht hier Sinn, denn ob eine Taste gedrückt wird, soll ja nicht nur ein einziges mal zu einem bestimmten Zeitpunkt geprüft werden, sondern immer wieder in genügend kleinen Zeitabständen.
  • Der Programm-Code durch den ausgedrückt wird, dass eine Befehlsfolge immer wieder abgearbeitet wird ist:
  •          while(true)
             {
                 Zwischen den geschweiften Klammern stehen Ihre Befehlszeilen
             }
         
  • Es handelt sich hierbei um eine so genannte while-Schleife.
  • Die Befehle, die im Rumpf der Schleife stehen, der durch geschweifte Klammern markiert ist, werden mehrmals ausgeführt.
  • In den runden Klammern wird hinein geschrieben, unter welcher Bedingung die Befehle im Rumpf wiederholt abgearbeitet werden.
  • Normalerweise steht hier ein logischer Ausdruck, der als Ergebnis eine boolsche Variable liefert, wie beispielsweise:
    while(i<5)
    - "Führe die Befehle im Rumpf aus, solange i kleiner als 5 ist".
  • Wenn man jetzt die Variable i im Rumpf bei jedem Durchlauf um 1 erhöht, wäre irgendwann die Bedingung
    i<5
    nicht mehr erfüllt und das Programm wird hinter dem Rumpf der while-Schleife mit dem nächsten dort folgenden Befehl fortgesetzt.
  • In unserem Fall steht statt eines logischen Ausdrucks dort einfach das Schlüsselwort "
    true
    ", also "wahr", das Gegenteile wäre "
    false
    ", also "unwahr".
  • Deshalb werden die Befehle im Rumpf dieser Schleife ständig wiederholt.
  • Ein Konstrukt, wie die while-Schleife, mit dessen Hilfe sich die Abarbeitung einer bestimmten Anzahl von Befehlen an Bedingungen knüpfen läßt, nennt man "Kontrollstruktur".
  • Es gibt in C/C++ eine ganze Reihe weiterer Kontrollstrukturen.
  • Als weitere Kontrollstrukturen soll hier noch die if-Verzweigung und die for-Schleife eingeführt werden.
  • Nehmen wir dazu das Projekt aus Test2 im Zip-File 002protoneu_taster.zip als Beispiel (Kapitel 7.1.4.4):
  • Der Anwenderprogrammcode ist im folgenden zu sehen und wird im Workshop erläutert:
Programm

Bild 7.1.6.2-1: Hauptprogramm aus Projekt 002protoneu_taster von Kapitel 7.1.4.4.

//****************************** Anwenderprogramme **************************************
    bool zustand = true;

    while( !taster.taster1_gedrueckt() )
    {
    }

    lampe.ein();

    while(true)
    {
        if( taster.taster2_gedrueckt() )
        {
            if(zustand==true)
                lampe.aus();
            else
                lampe.ein();

            zustand = !zustand;

            for(pause=0;pause<10000000;pause++);

            while( taster.taster2_gedrueckt() );
        }
    }
//****************************** ENDE Anwenderprogramme *********************************
 

Code 7.1.6.2-2: Anwenderteil gesondert ohne Kommentare.