Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
Nach der Verzweigung zu e<strong>in</strong>er Marke wird das Programm sequentiell fortgesetzt, wobei <strong>die</strong> Marken<br />
ke<strong>in</strong>e Bedeutung mehr haben. Mit der break-Anweisung kann e<strong>in</strong> switch jederzeit beendet<br />
werden. E<strong>in</strong> break ist also notwendig, wenn <strong>die</strong> Anweisungen der nächsten case-Konstanten<br />
nicht ausgeführt werden sollen. Es ist ke<strong>in</strong>e Reihenfolge für case <strong>und</strong> default vorgeschrieben.<br />
9.2 Schleifen<br />
In e<strong>in</strong>er Schleife wird e<strong>in</strong>e Gruppe von Anweisungen, der sogenannte Schleifen-Rumpf, mehrfach<br />
ausgeführt. Zur Bildung e<strong>in</strong>er Schleife stehen <strong>in</strong> C drei Anweisungen zur Verfügung: while, dowhile<br />
<strong>und</strong> for.<br />
9.2.1 While<br />
Anweisung A<br />
while(Ausdruck)<br />
Anweisung<br />
Anweisung B<br />
Bei der while-Anweisung wird <strong>die</strong> zugehörige Anweisung<br />
solange wiederholt, wie der Ausdruck wahr ist.<br />
Sobald der Ausdruck falsch ist, wird mit der auf <strong>die</strong><br />
while-Schleife folgenden Anweisung B weitergefahren.<br />
Wenn der while Ausdruck von Anfang an falsch<br />
ist, wird <strong>die</strong> Schleifen-Anweisung gar nie Ausgeführt.<br />
Anweisung A<br />
while (Ausdruck)<br />
Anweisung<br />
Anweisung B<br />
Nehmen wir an, Sie wollen herausf<strong>in</strong>den, wie lange Sie sparen müssen um Millionär zu werden,<br />
wenn Sie jeden Monat h<strong>und</strong>ert Taler sparen <strong>und</strong> zur Bank br<strong>in</strong>gen, wobei das Kapital noch verz<strong>in</strong>st<br />
wird. In C könnte das Problem folgendermassen gelöst werden:<br />
me<strong>in</strong>_guthaben = 0.0;<br />
monat = 0;<br />
while(me<strong>in</strong>_guthaben < 1000000.0) { /* Wiederholen bis Millionaer */<br />
me<strong>in</strong>_guthaben = me<strong>in</strong>_guthaben * 1.003; /* monatl. Z<strong>in</strong>ssatz 0,3% */<br />
me<strong>in</strong>_guthaben += 100.0; /* Monatsrate */<br />
monat++; /* Monatszaehler <strong>in</strong>krementieren */<br />
}<br />
pr<strong>in</strong>tf("Nach %d Monaten b<strong>in</strong> ich endlich Millionaer \n", monat);<br />
9.2.1.1 Fehlerquelle<br />
Wenn am Ende der Whileschlaufe e<strong>in</strong> Semikolon gesetzt wird, gilt <strong>die</strong>ses als leere Anweisung, welche<br />
solange wiederholt wird, wie <strong>die</strong> while-Bed<strong>in</strong>gung wahr ist.<br />
/* Fehler, Block wird hoechstens e<strong>in</strong>mal durchlaufen, While moeglichger */<br />
/* weise nie beendet */<br />
while(me<strong>in</strong>_guthaben < 1000000.0);<br />
{<br />
me<strong>in</strong>_guthaben = me<strong>in</strong>_guthaben * 1.003 + 100.0; /* monatl. Z<strong>in</strong>s u. Rate */<br />
}<br />
Diesen Fehler kann man vermeiden, wenn <strong>die</strong> öffnende geschweifte Klammer gleich an while<br />
angefügt wird (Zum<strong>in</strong>dest wird so der Fehler offensichtlich):<br />
while(me<strong>in</strong>_guthaben < 1000000.0) {<br />
me<strong>in</strong>_guthaben = me<strong>in</strong>_guthaben * 1.003 + 100.0; /* monatl. Z<strong>in</strong>s u. Rate */<br />
}<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 35/147