Berndt Wischnewski | Richard-Wagner-Str. 49 | 10585 Berlin | ||
Tel.: 030 - 3429075 | FAX : 030 34704037 | email: webmaster@peacesoftware.de | Ust-ID: DE135577379 |
C Kurs - Schleifen - for wenn man öfters fast das selbe machen will
Stellen Sie sich vor, Sie haben einen Array, xvalues[10000], angelegt und sollen diesen nun mit Werten füllen. jetzt zu schreiben
geht natürlich auch, aber es sollte doch auch eine einfachere Möglichkeit geben. Es gibt sogar drei verschiedene:
1. for Schleife die generelle Form ist:
Jetzt zur Praxis, bei einer for Schleife brauchen wir eine Laufvariable, z.B.
Schleifenlaufvariablen haben häufig Namen wie i, j, k oder so. Dies liegt einerseits daran, das dies so schön kurz ist und zum zweiten kommt es noch von good old FORTRAN. In FORTRAN sind alle Variablen die mit den Buchstaben i bis n anfangen per default impliziet integer, es sei denn, man gibt den Typ direkt an. Ich glaube mich zu erinnern, dass deshalb mal eine Mars Sonde perdu gegangen ist, weil der FORTRAN Programmierer eine Variable die eigentlich eine reelle Zahl war, mit einem Buchstaben zwischen i bis n anfangen lies. So und jetzt die erste Schleife, schreiben Sie bitte in Ihrem Compiler ein kleines main Programm und probieren Sie folgendes aus:
Wenn es nur eine Anweisung gibt, die bei jedem Schleifendurchlauf ausgeführt werden soll, kann man sich die geschweiften Klammern auch sparen. Kurz zur printf Anweisung (print formatet, kriegen wir später) : hier wird auf die Konsole geschrieben und zwar erst "i: "und dann die Zahl die i gerade hat und dann das Return-Zeichen "\n" . Zuerst wird die Schleifenvariable initialisiert: i
= 0; Wenn Sie das Programm laufen lassen sollten Sie folgenden output erhalten:
Mit diesen Parametern kann man jetzt spielen:
ergibt folgenden output:
ergibt folgenden output:
ergibt folgenden output:
Hier wird i und j initialisert: i = 0, j = 100;
Die Schleife bricht ab, weil die Laufbedingung j < 150;
falsch wird. Ob solche Konstruktionen die Lesbarkeit und Klarheit des Programms
erhöhen, müssen Sie selber entscheiden, ich persönlich verwende
solche Schleifen mit mehreren Laufvariablen nur sehr sehr selten. So und jetzt wollen wir eine Schleife zur Initialisierung von Arrays benutzen:
ergibt folgenden output, bitte denken Sie kurz darüber nach und versuchen die Logik nachzuvollziehen :
Und jetzt mal einen mehrdimensionalen Array in einer dreifach geschachtelten for Schleife:
Hier wird der multi dimensionale Array of char mit Nullen initialisiert. Der output ist nicht ganz so spanned, alles ist Null. Es ist erlaubt die Schleifenvariable im Schleifenrumpf zu verändern, ich empfehle dies auf gar keinen Fall zu tun. Man kann eigentlich darauf warten, dass es schiefgeht, die Konstruktion wird undurchschaubar und man hat immer die Möglichkeit das Problem irgendwie anders zu lösen:
ergibt folgenden output:
Und natürlich darf man Schleifen auch schachteln, also Schleifen innerhalb von Schleifen innerhalb von Schleifen... einfügen, hier ein Beispiel: int i, j, k, k = 0; for(i = 0; i < 5; i++)
|
Ein paar nette Kochbücher aus dem O'Reilly Verlag, die Bücher mit den Tieren drauf: |