У цьому уроці ви навчитеся створювати оператор goto у програмуванні на C. Крім того, ви дізнаєтесь, коли використовувати оператор goto, а коли не використовувати його.
goto
Заява дозволяє передати управління програмою на вказану мітку.
Синтаксис оператора goto
goto label;… … label: statement;
Етикетка є ідентифікатором. Коли goto
зустрічається оператор, елемент керування програмою переходить до label:
і починає виконувати код.
Приклад: goto Statement
// 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
рідко буває корисним, і ви можете створити будь-яку програму на С, не використовуючи goto
взагалі.
Ось цитата Бьярна Страуструпа, творця C ++, "Той факт, що" goto "може робити що завгодно, саме тому ми його не використовуємо".