C перейти к заявлению
Выражение C goto
В этом руководстве вы научитесь создавать оператор goto в программировании на C. Кроме того, вы узнаете, когда использовать оператор goto, а когда нет.
goto
оператор позволяет передать управление программой указанной метке .
Синтаксис инструкции goto
goto label;
... .. ...
... .. ...
label:
statement;
Ярлык является идентификатором. Когда goto
встречается оператор, управление программой переходит к label:
и начинает выполнение кода.

Пример:инструкция goto
// 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;
}
Вывод
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<час>
Причины, по которым следует избегать перехода
Использование goto
оператор может привести к коду, который содержит ошибки и труден для понимания. Например,
one:
for (i = 0; i < number; ++i)
{
test += i;
goto two;
}
two:
if (test > 5) {
goto three;
}
... .. ...
Кроме того, goto
Оператор позволяет делать плохие вещи, например, выходить за пределы области видимости.
При этом goto
может быть полезно иногда. Например:чтобы выйти из вложенных циклов.
Стоит ли использовать goto?
Если вы думаете, что использование goto
оператор упрощает вашу программу, вы можете его использовать. При этом goto
редко бывает полезен, и вы можете создать любую программу на C, не используя goto
вообще.
Вот цитата Бьерна Страуструпа, создателя C++:"Тот факт, что 'goto' может делать что угодно, именно поэтому мы его не используем".
Язык C