C goto-Anweisung
C goto-Anweisung
In diesem Tutorial lernen Sie, wie Sie die goto-Anweisung in der C-Programmierung erstellen. Außerdem erfahren Sie, wann Sie eine goto-Anweisung verwenden und wann nicht.
Der goto
-Anweisung ermöglicht es uns, die Kontrolle über das Programm an das angegebene label zu übertragen .
Syntax der goto-Anweisung
goto label;
... .. ...
... .. ...
label:
statement;
Das Label ist eine Kennung. Wenn die goto
-Anweisung angetroffen wird, springt die Programmsteuerung zu label:
und beginnt mit der Ausführung des Codes.
Beispiel:goto-Anweisung
// Program to calculate the sum and average of positive numbers
// If the user enters a negative number, the sum and average are displayed.
#include <stdio.h>
int main() {
const int maxInput = 100;
int i;
double number, average, sum = 0.0;
for (i = 1; i <= maxInput; ++i) {
printf("%d. Enter a number: ", i);
scanf("%lf", &number);
// go to jump if the user enters a negative number
if (number < 0.0) {
goto jump;
}
sum += number;
}
jump:
average = sum / (i - 1);
printf("Sum = %.2f\n", sum);
printf("Average = %.2f", average);
return 0;
}
Ausgabe
1. Enter a number: 3 2. Enter a number: 4.3 3. Enter a number: 9.3 4. Enter a number: -2.9 Sum = 16.60 Average = 5.53
Gründe, goto zu vermeiden
Die Verwendung von goto
-Anweisung kann zu fehlerhaftem und schwer nachvollziehbarem Code führen. Zum Beispiel
one:
for (i = 0; i < number; ++i)
{
test += i;
goto two;
}
two:
if (test > 5) {
goto three;
}
... .. ...
Auch die goto
-Anweisung erlaubt es Ihnen, schlechte Dinge zu tun, wie z. B. aus dem Geltungsbereich zu springen.
Davon abgesehen goto
kann manchmal nützlich sein. Zum Beispiel:Um verschachtelte Schleifen zu unterbrechen.
Sollten Sie goto verwenden?
Denkt man an die Verwendung von goto
Anweisung Ihr Programm vereinfacht, können Sie sie verwenden. Davon abgesehen goto
ist selten nützlich und Sie können jedes C-Programm erstellen, ohne goto
zu verwenden insgesamt.
Hier ist ein Zitat von Bjarne Stroustrup, dem Erfinder von C++:"Die Tatsache, dass 'goto' alles kann, ist genau der Grund, warum wir es nicht verwenden."
C Sprache