01/10/2018, 17:36
Lệnh goto trong C++
Cho em hỏi các tiền bối có ai sử dụng lệnh goto trong lúc lập trình không, do em nghe thầy bảo là lệnh goto dễ gây lỗi nên không được sử dụng nữa.
Bài liên quan
Cho em hỏi các tiền bối có ai sử dụng lệnh goto trong lúc lập trình không, do em nghe thầy bảo là lệnh goto dễ gây lỗi nên không được sử dụng nữa.
Một số trường hợp chỉ cần dùng
break;
(ra khỏi vòng lặp) haycontinue;
(nhảy lên 1 bước nữa) là đủ xài. Căng hơn thì try… catch…Hi Le Ly Vinh.
Nếu bạn code một lần sau đó bỏ không đọc lại nữa thì dùng không vấn đề gì. Tuy nhiên nếu cấn đọc lại code thì sẽ làm khó người đọc.
Sức mạnh càng cao, trách nhiệm càng lớn. Cứ nhớ thế cho mình khi bạn dùng goto.
Trong C++ có RAII rồi nên ít khi bạn dùng.
Tuy nhiên, trong C có 1 trường hợp dùng
goto
dùng để clean up (giải phóng memory, resource, connection), hoặc trả về status (success, error code)Trong các ngôn ngữ mới thì họ giải quyết cách này bằng keyword
defer
. (Go, Swift)Tham khảo: https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/buffer.c
Mình toàn coi mặc định
goto
là lệnh cấm sử dụng Không phải vì khó sử dụng mà nó phá vỡ tính tuần tự của chương trình