Trong hướng dẫn này, bạn sẽ học cách tạo câu lệnh goto trong lập trình C. Ngoài ra, bạn sẽ học khi nào sử dụng câu lệnh goto và khi nào không sử dụng nó.
Câu goto
lệnh cho phép chúng ta chuyển quyền điều khiển chương trình đến nhãn được chỉ định.
Cú pháp của câu lệnh goto
goto label;… … label: statement;
Nhãn là một định danh. Khi goto
câu lệnh gặp phải, điều khiển của chương trình sẽ nhảy đến label:
và bắt đầu thực thi mã.
Ví dụ: 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; )
Đầu ra
1. Nhập số: 3 2. Nhập số: 4.3 3. Nhập số: 9.3 4. Nhập số: -2,9 Tổng = 16,60 Trung bình = 5,53
Những lý do nên tránh goto
Việc sử dụng goto
câu lệnh có thể dẫn đến mã lỗi và khó theo dõi. Ví dụ,
one: for (i = 0; i 5) ( goto three; )…
Ngoài ra, goto
câu lệnh cho phép bạn thực hiện những điều tồi tệ như nhảy ra khỏi phạm vi.
Điều đó đang được nói, goto
đôi khi có thể hữu ích. Ví dụ: để ngắt khỏi các vòng lặp lồng nhau.
Bạn có nên sử dụng goto?
Nếu bạn cho rằng việc sử dụng goto
câu lệnh đơn giản hóa chương trình của mình, bạn có thể sử dụng nó. Điều đó đang được nói, goto
hiếm khi hữu ích và bạn có thể tạo bất kỳ chương trình C nào mà không cần sử dụng goto
hoàn toàn.
Đây là trích dẫn từ Bjarne Stroustrup, người tạo ra C ++, "Thực tế là 'goto' có thể làm bất cứ điều gì chính xác là lý do tại sao chúng tôi không sử dụng nó."