"Never use goto statement" : các lập trình viên ở ngôn ngữ cấp cao thường nhắc nhau như vậy =))
Ở khía cạnh ngôn ngữ máy, ASM, CPU cần các tập lệnh JMP để thực hiện rẽ nhánh và lặp. Tuy nhiên, với các ngôn ngữ có tính "người" hơn (C, C++, Java, ...) thì việc sử dụng GOTO làm mất tính cấu trúc...