while - Schleife Teil D: Allgemeine Syntax: Schleifen while ( Ausdruck ) Anweisung; while - Schleife do - while - Schleife for - Schleife oder while ( Ausdruck ) { Block mit Anweisungen } 03.002.03 03.007.01 Beispiel while - Schleife /* Programm b0300702 /* Beispiel while-Anweisung Beispiel while - Schleife /* Programm b0300703 /* Beispiel while-Anweisung */ */ */ */ #include <iostream.h> #include <iostream.h> int main(void) { double Zahl = 0.0, Pi = 355.0/113.0; int main(void) { double Zahl = 3.01, Pi = 355.0/113.0; while ( Zahl < Pi ) { Zahl = Zahl + 1.5; cout << '*'; } while ( Zahl < Pi ) Zahl = Zahl + 0.001; cout << "Erg: "<<Zahl<<" "<<Pi<<endl; return 0; cout << endl; return 0; } } Ausgabe: Erg: 3.142 3.141593 03.007.02 03 / Teil D / Seite 01 03.007.03 Beispiel while - Schleife /* Programm b0300704 /* Beispiel while-Anweisung break in while - Schleifen /* Programm b0300705 /* break in while-Schleifen */ */ */ */ #include <stdio.h> #include <stdio.h> int main(void) { double fZahl = 10.0; int main(void) { double fZahl = 10.0; while ( fZahl ) { fZahl = fZahl - 0.5; if ( fZahl < 5 ) break; } printf("Letzter Wert: %f",fZahl); return 0; while ( fZahl ) { fZahl = fZahl - 0.5; printf("%f\n",fZahl); } return 0; } } 03.007.04 03.007.05 do - while - Schleife Beispiel do - while - Schleife /* Programm b0300707 /* Beispiel do-while-Schleife Allgemeine Syntax: do */ */ #include <stdio.h> Anweisung; while ( Ausdruck ); oder do Wird solange ausgeführt, wie Ausdruck wahr (d.h. ungleich 0) ist, mindestens jedoch einmal. int main(void) { int iZahl; do { printf("Positve int-Zahl eingeben: "); scanf("%d",&iZahl); { Block mit Anweisungen } while ( iZahl < 0 ); return 0; } while ( Ausdruck ); 03.007.06 } 03 / Teil D / Seite 02 03.007.07 for - Schleife for - Schleife Allgemeine Syntax: Bedeutung der Ausdrücke: for ( Ausdruck1 ; Ausdruck2 ; Ausdruck3 ) Anweisung; for ( Ausdruck1 ; Ausdruck2 ; Ausdruck3 ) Anweisung; ist gleichbedeutend mit Ausdruck1; while ( Ausdruck2 ) { Anweisung; Ausdruck3; } oder for ( Ausdruck1 ; Ausdruck2 ; Ausdruck3 ) { Block mit Anweisungen } 03.007.09 03.007.08 for - Schleife for - Schleife Beispiel: Berechnung der Summe der Zahlen von 1 bis N Beispiel: Berechnung der Summe der Zahlen von N bis 1 /* Programm b0300710 /* Summe der Zahlen 1 bis N */ */ /* Programm b0300711 /* Summe der Zahlen N bis 1 */ */ #include <stdio.h> #include <stdio.h> int main(void) { long int i, iSum = 0, N = 1000; int main(void) { long int i, iSum = 0, N = 1000; } Laufvariable kann hochoder runtergezählt werden for (i = 1; i <= N; i = i + 1) iSum = iSum + i; for (i = N; 0 < i; i = i - 1) iSum = iSum + i; printf("Summe 1 bis %ld: %ld\n", N,iSum); return 0; printf("Summe %ld bis 1: %ld\n", N,iSum); return 0; 03.007.10 } 03 / Teil D / Seite 03 03.007.11 for - Schleife for - Schleife Beispiel: Summe der ungeraden Zahlen von 1 bis N /* Programm b0300712 /* Summe ungerader Zahlen 1 bis N Beispiel: Summe der Zahlen von M bis N */ */ #include <stdio.h> int main(void) { long int i, iSum = 0, N = 1000; for (i = 1; i <= N; i = i + 2) iSum = iSum + i; beliebige Schrittweiten, auch variabel printf("Summe 1 bis %ld: %ld\n", N,iSum); return 0; } 03.007.12 /* Programm b0300713 */ /* Summe Zahlen M bis N */ #include <stdio.h> int main(void) { long int i, iSum = 0, M, N; printf("Bitte M und N eingeben: "); if (2 == scanf("%d%d",&M,&N)) { for ( ; M <= N; M = M + 1) iSum = iSum + M; printf("Summe aller Zahlen: %ld\n",iSum); } else printf("Falsche Eingabe.\n"); return 0; } 03.007.13 for - Schleife ohne lokaler Deklaration for - Schleife /* Programm b0300714 /* for - Schleife // Programm b0300716 // for-Schleife ohne lokaler Deklaration */ */ #include <stdio.h> #include <iostream.h> int main(void) { unsigned int i, iSum = 0; int main(void) { int i = 1; for (i = 100; i >= 0; i = i - 1) iSum = iSum + i; printf("Summe von 100 bis 0 = %d\n",iSum); return 0; } Ausgabe: i = 1 i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 03.007.14 03 / Teil D / Seite 04 cout << "i = " << i << endl; for (i = 0; i < 5; i = i + 1) cout << "i = " << i << endl; cout << "i = " << i << endl; return 0; } 03.007.16 for - Schleife mit lokaler Deklaration // Programm b0300717 // for-Schleife mit lokaler Deklaration #include <iostream.h> int main(void) { int i = 1; Ausgabe: i = 1 i = 0 i = 1 i = 2 i = 3 i = 4 i = 1 i wird nicht verändert cout << "i = " << i << endl; for (int i = 0; i < 5; i = i + 1) cout << "i = " << i << endl; cout << "i = " << i << endl; return 0; } 03.007.17 03 / Teil D / Seite 05