Lệnh goto trong C

Lệnh goto là gì?

Lệnh goto cho phép chúng ta chuyển điều khiển chương trình sang một label chỉ định.

Cú pháp

goto label;
... .. ...
... .. ...
label: 
câu lệnh;

label là một mã định danh. Khi goto được thực hiện, điều khiển của chương trình sẽ nhảy trực tiếp đến label và bắt đầu kích hoạt các câu lệnh của label.


Ví dụ

Chương trình tính tổng và trung bình của các số dương. Nếu một số âm được nhập vào thì chương trình sẽ hiển thị tổng và trung bình của các số đã tính được trước đó.

// 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. Nhập 1 số: ", 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;
}

Kết quả

1. Nhập 1 số: 3
2. Nhập 1 số: 4.3
3. Nhập 1 số: 9.3
4. Nhập 1 số: -2.9
Sum = 16.60
Average = 5.53

Lý do cần tránh dùng lệnh goto

Việc sử dụng goto có khả năng làm chương trình dễ bị bug và khó theo dõi. Ví dụ

one:
for (i = 0; i < number; ++i)
{
    test += i;
    goto two;
}
two: 
if (test > 5) {
  goto three;
}
... .. ...
Series Navigation<< Lệnh switch trong CHàm trong C >>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *