Заявление 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 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' может делать что угодно, именно поэтому мы его не используем».

Интересные статьи...