05. Schritt-für-Schritt C/C++ — C Programmierung - Schleifenanweisungen
- Verzweigungsanweisung - goto
- Schleifenanweisungen
for
while
do..while
1. Verzweigungsanweisung
goto
Es überträgt den Steuerzeiger von einem Ort zum anderen im aktuellen Programm.
| | Syntax:
Hinweis: Der Labelname muss mit einem Doppelpunkt (:) definiert werden und darf nicht länger als 32 Zeichen sein.
| | Beispiel:
abc:
printf(“Hallo”);
goto abc; |
/ 01. Ein Demonstrationsprogramm zur Veranschaulichung der goto-Anweisung /
/ 19_goto.c /
#include
int main()
{
abc: / Labelname /
printf(“\nHallo”);
goto abc; / Verzweigungsanweisung /
return 0;
}
/ 07. Die kontinuierliche Ausführung wird mit einer Tragevariable und einer Bedingungsanweisung gestoppt /
/ Finde den Unterschied zwischen dem letzten Programm und diesem, notiere alle Unterschiede in diesem Programm/
/ 20_goto.c /
#include
int main()
{
int i = 1;
abc:
printf(“\nHallo”);
i ++;
if ( i<= 10 ) / Achte auf diese Anweisung /
goto abc;
return 0;
}
2. Schleifenanweisungen
for
Eine iterative Anweisung, um einen Anweisungsblock eine bestimmte Anzahl von Malen auszuführen.
| | Syntax:
for( ; ; )
{
} |
| | Beispiel.
for(I=1;I<=10; I++)
printf("\n%d",i); |
| | Beispiel.
for(I=1, j = 0; I<10; I+=2, j+=2)
printf("%d %d\n", i, j); |
/* 08. Um eine Nachricht 5 Mal zu drucken */
/* 21_for.c */
#include
int main()
{
int i;
for(i = 1; i <= 5; i++ )
printf("\nHallo");
return 0;
}
/* 09. Um eine Nachricht mit ihrer Anzahl bis zu 5 Mal zu drucken */
/* 22_hello.c */
#include
int main()
{
int i;
for(i = 1; i <= 5; i++ )
printf("\nHallo - %d", i);
return 0;
}
/* 10. Um die natürlichen Zahlen von 1 bis 10 zu drucken */
/* 23_nat.c */
#include
int main()
{
int i;
for(i = 1; i <= 10; i++ )
printf("\n%d", i); /* Eliminierungsnachricht */
return 0;
}
/* 11. Um die zweite Multiplikationstabelle zu drucken */
/* Hinweis: Vergleiche es mit dem letzten Programm */
/* 24_table.c */
#include
int main()
{
int i;
for(i = 1; i <= 20; i++ )
printf("\n%d * 2 = %d", i, i * 2);
return 0;
}
/* 12. Um eine Multiplikationstabelle für die gegebene Zahl zu drucken */
/* 25_tablen.c */
#include
#include
int main()
{
int i, t; /* eine neue Variable 't' */
clrscr();
printf("Welche Tabelle soll gedruckt werden:"); scanf("%d", &t);
for(i = 1; i <= 20; i++ )
printf("\n%d * %d = %d", i, t, i * t);
return 0;
}
/* 13. Um eine Multiplikationstabelle für die gegebene Zahl zu drucken */
/* Hinweis: Vergleiche es mit dem letzten Programm */
/* 26_tablen.c */
#include
int main()
{
int i, t;
clrscr();
for(t = 1; t <= 20; t++) /* Eine weitere for-Schleife */
for(i = 1; i <= 20; i++ )
printf("\n%d * %d = %d", i, t, i * t);
return 0;
}
/* 14. Um Zahlen in Dreiecksform zu drucken */
/* Hinweis: Vergleiche es mit dem letzten Programm */
/* 27_tri.c */
#include
int main()
{
int i, j;
clrscr();
for( i = 1 ; i<= 5; i++ )
{
for( j = 1; j <= 5; j++ )
printf("%4d", j);
printf("\n");
}
return 0;
}
Einige weitere Beispiele für for-Schleifen:
| | /* Unendliche Schleife */
for ( ; ; )
{
printf("\nHallo");
} | /* Drucke 1-5 Zahlen */
for ( i=1; i<=5; )
{
printf("\n%d", i++);
} |
| | /* Expliziter Schleifenabbruch*/
for ( i=1; ; )
{
printf("\n%d", i++);
if ( i> 5 ) break;
} | int i = 1;
for ( ;i<=5 ; )
{
printf("\n%d", i++);
} |
while
Eine iterative Anweisung, um einen Anweisungsblock auszuführen, bis die gegebene Bedingung erfüllt ist.
do.. while
Diese iterative Anweisung führt den Anweisungsblock zuerst aus und überprüft dann die Gültigkeit der Bedingung. Wenn die Bedingung wahr ist, wird der Anweisungsblock erneut ausgeführt und umgekehrt.
| | Syntax:
while( )
{ ; } | Syntax:
do
{ } while(); |
Beispiel.
Das folgende Beispiel zeigt natürliche Zahlen von 1 bis 10.
| | int main()
{
int i=1;
while( i<=10)
{
printf("\n%d",i);
i++;
}
return 0;
} | int main()
{
int i=1;
do
{
printf("\n%d",i);
i++;
}while(i<=10);
return 0;
} |
| | Es überprüft zuerst die Bedingung und führt dann den Block aus, Daher solltest du einen Anfangswert für die Bedingung haben | Es führt zuerst den Block aus und überprüft dann die Bedingung, Du kannst den Anfangswert im Anweisungsblock bestimmen. |
Weitere Beispiele
| | /* 15. Um die Zahlen von 1 bis 5 zu drucken */
/* Hinweis: Es ist ein Referenzprogramm */ /* 28_while.c */
#include
int main()
{
int i;
i = 1; /* Anfangswert ist 1 */
while( i<= 10 )
/* Wahr, i ist zu Beginn kleiner oder gleich 10 */
{
printf("\n%d", i);
i ++;
}
return 0;
} | /* 16. Um die Zahlen von 1 bis 5 zu drucken */
/* 29_dowhile.c */
#include
int main()
{
int i;
i = 1; /* Anfangswert ist 1 */
do
{
printf("\n%d", i);
i ++;
}while( i<=10 );
/* Wahr, i ist beim zweiten Mal kleiner oder gleich 10 */
return 0;
} |
| | /* 17. Demonstration von while */
/* Hinweis: Wenn der Anfangswert 100 ist, was war die Ausgabe?, Überprüfe es. */ /* 30_demow.c */
#include
int main()
{
int i;
i = 1;
while( i<= 10 )
{
printf("\n%d", i);
i++;
}
return 0;
} | /* 18. Demonstration von do */
/* Hinweis: Wenn der Anfangswert 100 ist, was war die Ausgabe?, Überprüfe es. */
/* 31_demod.c */
#include
int main()
{
int i;
i = 1;
do
{
printf("\n%d", i);
i++;
}while( i<= 10 );
return 0;
} |