English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai a creare istruzioni goto nel linguaggio C. Inoltre, imparerai quando usare le istruzioni goto e quando non usarle.
Le istruzioni goto ci permettono di trasferire il controllo del programma a un etichetta label specifica.
goto label; ... .. ... ... .. ... label: statement;
label è un identificatore. Quando goto incontra questa istruzione, il controllo del programma salta a label: e inizia a eseguire il codice.
// Il programma calcola la somma dei numeri positivi // Se l'utente inserisce un numero negativo, visualizza la somma e la media. #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. Inserisci il numero: ", i); scanf("%lf", &number); // Se l'utente inserisce un numero negativo, salta if (number < 0.0) { goto jump; } sum += number; } jump: average = sum / (i - 1); printf("Somma (somma) = %.2f\n", sum); printf("Media (media) = %.2f", average); return 0; }
Risultato di output
1. Inserisci il numero: 3 2. Inserisci il numero: 4.3 3. Inserisci il numero: 9.3 4. Inserisci il numero: -2.9 Somma (somma) = 16.60 Media (media) = 5.53
L'uso delle istruzioni goto può portare a errori nel codice e essere difficile da seguire. Ad esempio:
one: for (i = 0; i < number; ++i) { test += i; goto two; } two: if (test > 5) { goto three; } ... .. ...
Inoltre, le istruzioni goto ti permettono di eseguire operazioni non desiderate, come uscire da un intervallo.
Nonostante ciò, goto a volte può essere utile. Ad esempio: rompere un ciclo annidato.
如果您认为使用goto语句可以简化程序,则可以使用它。话虽如此,goto它很少有用,您也可以在不使用任何goto语句的情况下,创建任何C程序。
这是C++的创建者Bjarne Stroustrup的话:“'goto'无所不能的事实,正是我们不使用它的原因。”