В этом руководстве вы научитесь создавать оператор 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 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", sum); printf("Average = %.2f", average); return 0; )
Вывод
1. Введите число: 3 2. Введите число: 4,3 3. Введите число: 9,3 4. Введите число: -2,9 Сумма = 16,60 Среднее значение = 5,53
Причины избегать goto
Использование goto
оператора может привести к появлению ошибок в коде, которому будет трудно следовать. Например,
one: for (i = 0; i 5) ( goto three; )…
Кроме того, этот goto
оператор позволяет делать плохие вещи, например, выпрыгивать из области видимости.
При этом goto
иногда может быть полезно. Например: вырваться из вложенных циклов.
Стоит ли использовать goto?
Если вы думаете, что использование goto
оператора упрощает вашу программу, вы можете его использовать. При этом goto
это редко бывает полезно, и вы можете создать любую программу на C без использования goto
.
Вот цитата Бьярна Страуструпа, создателя C ++: «Тот факт, что 'goto' может делать что угодно, именно поэтому мы его не используем».