|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Die while Schleife erlaubt es, eine Bedingung zu prüfen und Anweisungen so oft zu wiederholen, wie die Bedingung einen Wert ungleich 0 ergibt. Diese Bedingung wird hinter dem Schlüsselwort while in Klammern angegeben. Da die Bedingung vor dem Schleifendurchlauf überprüft wird, kann es auch vorkommen, daß die Schleife überhaupt nicht durchlaufen wird.
Bei den Anweisungen kann es sich um eine einzelne Anweisung oder einen Block in geschweiften Klammern handeln.
int i; i = 0; while (i++ < 5) { printf("i = %d\n",i); } i = 0; while (++i < 5) { printf("i = %d\n",i); }
Dieses Beispiel zeigt auch die Auswirkung für eine vorangestellten und einen nachgestellten Inkrementoperator.
Mit dieser Schleife können wir jetzt den Cookie Jar ausgeben, nachdem wir den Zeiger auf den Cookie Jar ermittelt haben und schon geprüft haben, ob ein Cookie Jar existiert.
#ifdef __TURBOC__ #include <tos.h> #else #ifdef __GNUC__ #include <osbind.h> #else #include <tosbind.h> #endif #endif #include <stdio.h> typedef struct cookie_entry { union { unsigned long name_long; char name_array[4]; } name; unsigned long value; } CookieEntry; int main(void) { CookieEntry **CookieJarPtr, *CookieJar; long OldStack; OldStack=Super(0L); CookieJarPtr = (CookieEntry**)0x5a0L; CookieJar=*CookieJarPtr; Super((void *)OldStack); if (CookieJar == (CookieEntry *)0) printf("Dieses System hat keinen Cookie Jar\n"); else { while (CookieJar->name.name_long != 0) { printf("Name des Cookies: %d\n", CookieJar->name.name_long); printf("Wert des Cookies: %d\n", CookieJar->value); CookieJar++; } } return 0; }
Achtung! Damit die Schleife auch terminiert, muß auch mindestens eine Anweisung vorhanden sein, die einen Einfluß auf die Bedingung in dem Schleifenkopf hat. Also z.B. eine Variable, die abgefragt wird, auf einen anderen Wert setzt.
English version not yet available. |