C-Tutorial Kapitel 4
Aus Wirthi's Wiki
| C-Tutorial | |
|---|---|
| Allgemeines Kapitel 1 (Einleitung) Kapitel 2 (Blöcke) Kapitel 3 (Daten) Kapitel 4 (Kontrollanweisungen) Kapitel 5 (Ein- und Ausgabe) Kapitel 6 (Unterprogramme) Kapitel 7 (Felder und Strukturen) Kapitel 8 (Zeiger) | |
|
Im 4. Kapitel werden Kontrollanweisungen beschrieben. Diese erlauben es, eine vom sequentiellen Programmfluss abweichende Logik zu programmieren.
[bearbeiten] Boolsche Logik
Boolean-Variablen können miteinander verknüpft werden. Dies geschieht mit den boolschen Operatoren && ( logisches "und"), || (logisches "oder") und ! (logisches "nicht") (es gibt noch weitere, auf die hier nicht eingegangen wird).
b1= b2 && b3;
Der Wert von b1 ist dann 1 (TRUE), wenn b2 und ("AND") b3 1 (TRUE) sind. Ist eine der beiden (oder auch beide) 0 (FALSE), dann ist b1 ebenfalls 0 (FALSE).
b1= b2 || b3;
Der Wert von b1 ist dann TRUE, wenn b2 oder ("OR") b3 TRUE ist. Ist also einer (oder beide) TRUE, dann ist auch b1 TRUE, sind beide FALSE, ist auch b1 FALSE.
b1= !b2;
Der Wert von b1 ist dann TRUE, wenn der von b2 FALSE ist. Die NOT Verknüpfung "dreht den logischen Wert der Variablen um".
[bearbeiten] if-Anweisung
Syntax: if (Bedingung) Anweisung;
Mit Hilfe der IF Anweisung kann man Codeteile (Blöcke) ausführen lassen, wenn die dazugehörige Bedingung erfüllt (TRUE) ist.
if (Zahl1==0) Zahl2=10;
Die Anweisung Zahl2=10 wird nur ausgeführt, wenn Zahl1==0 TRUE ist. Will man in die IF Abfrage mehrere Anweisungen einschließen, benötigt man eine Block mit { und }. Die Klammer um die Bedingung ist - Bedingung!
if (Zahl1>=0) then
{
Zahl2=Zahl2+1;
Zahl1=Zahl2;
}
[bearbeiten] Schleifen
Um Anweisungen mehrmals hintereinander ausführen, benötigt man Scheifen. Diese führen Anweisunge aus, bis oder solange Bedingungen erfüllt sind.
[bearbeiten] while-Schleife
Syntax: while (Bedignung) Anweisung;
Die while-Schleife wird solange durchlaufen, bis die Bedingung FALSE ist (deutsch: "WÄHREND Bedingung TUE Anweisungen"). Die Schleife wird mindestens Null mal durchlaufen. Bei mehreren Anweisungen benötigen Sie einen Block!
Zahl1=0;
while (Zahl1<3)
{
Zahl1:=Zahl1+1;
Zahl2:=Zahl2*2;
}
In diesem Beispiel wird die Schleife 3 mal durchlaufen. Zu Beginn des 4. Durchlaufes ist die Bedingung FALSE (Zahl1 ist dann nicht mehr kleiner, sondern gleich 3!), also wird mit dem Befehl nach der Schleife fortgesetzt.
[bearbeiten] for-Schleife
Syntax: for (Zuweisung;Bedingung;Inkrement) Anwseisung;
Die for-Schleife ist eine Zählschleife. Die angegebene Variable wird am Anfang auf einen Wert gesetzt. Danach wird sie nach jedem Durchlauf verändert (meist um 1 erhöht). Hat sie einen bestimmten Wert erreicht, wird die Schleife beendet. Innerhalb des Anweisungsblockes können Sie auf die Variable zugreifen, d.h. Sie können sie auch verändern. Das ist jedoch nicht ratsam. Wollen Sie mehrere Anweisungen ausführen, benötigen Sie eine Block
Die obenstehende Syntax wird Pascal- oder Basic-Kenner verwundern. Aber das "neue" System ist schnell erklärt: Bei "Zuweisung" wird der Zählvariable ein Wert zugewiesen (entspricht Anfangswert bei Pascal). Die gesammte Schleife wird solange durchgeführt, bis Bedingung FALSE ist (d.h. Sie brauchen garnicht die Zählvariable abfragen, Sie können hier auch jede andere Variable auswerten). Inkrement letztendlich wird nach jedem Schleifendurchlauf ausgeführt. Hier kann man z.B. den Zähler erhöhen.
Die Theorie ist schwer, die Praxis nicht so sehr.
int Zaehler;
for (Zaehler=1; Zaehler<=10; Zaehler++)
{
Zahl2=Zahl2+Zaehler;
}
In diesem Beispiel wird Zahl2 in jedem Schleifendurchlauf um die Zählvariable Zaehler erhöht. Da Zaehler nacheinander die Werte von 1 bis 10 hat, ist in Zahl2 nach der Schleife die Summe der Zahlen 1 bis 10 gespeichert.
- Erklärung des Beispiels
- Zaehler=1 bedeutet, dass der Variablen Zaehler vor dem 1. Schleifendurchlauf der Wert 1 zugewiesen wird.
- Zaehler<=10 ist die Abbruchbedingung; ist sie FALSE, wird die Schleife beendet.
- Zaehler++ bedeutet, dass Zaehler nach jedem Durchlauf um 1 erhöht wird.
| Allgemeines - Kapitel 1 - Kapitel 2 - Kapitel 3 - Kapitel 4 - Kapitel 5 - Kapitel 6 - Kapitel 7 - Kapitel 8 |
