В този урок ще се научите да създавате оператора goto в програмирането на C. Също така ще научите кога да използвате оператор goto и кога да не го използвате.
В goto
изявлението ни позволява да се прехвърли контрола на програмата до указаното етикета.
Синтаксис на goto Statement
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
рядко е полезно и можете да създадете всяка програма на C, без да използвате goto
изцяло.
Ето цитат от Bjarne Stroustrup, създател на C ++, „Фактът, че„ goto “може да направи всичко, е точно защо не го използваме.“