Điều quan trọng là phải hiểu rằng goto
cấu trúc còn sót lại từ những ngày mà các lập trình viên lập trình bằng mã máy và ngôn ngữ lắp ráp. Bởi vì các ngôn ngữ đó rất cơ bản (như trong, mỗi lệnh chỉ thực hiện một điều), luồng điều khiển chương trình được thực hiện hoàn toàn bằng các goto
câu lệnh (nhưng trong ngôn ngữ lắp ráp, chúng được gọi là các lệnh nhảy hoặc nhánh ).
Bây giờ, mặc dù ngôn ngữ C ở mức độ khá thấp, nó có thể được coi là ngôn ngữ lắp ráp cấp độ rất cao - mỗi câu lệnh và chức năng trong C có thể dễ dàng được chia thành các hướng dẫn ngôn ngữ lắp ráp. Mặc dù C không phải là ngôn ngữ chính để lập trình máy tính ngày nay, nhưng nó vẫn được sử dụng nhiều trong các ứng dụng cấp thấp, chẳng hạn như các hệ thống nhúng. Bởi vì chức năng của C rất phản ánh chức năng của ngôn ngữ lắp ráp, nó chỉ có ý nghĩa rằnggoto
được bao gồm trong C.
Rõ ràng rằng Java là một sự phát triển của C / C ++. Java chia sẻ rất nhiều tính năng từ C, nhưng trừu tượng hơn rất nhiều chi tiết và do đó được viết đơn giản khác nhau. Java là một ngôn ngữ cấp cao, do đó, đơn giản là không cần thiết phải có các tính năng cấp thấp như goto
khi các cấu trúc cấp cao hơn như các hàm, cho, và trong khi các vòng lặp thực hiện luồng điều khiển chương trình. Hãy tưởng tượng nếu bạn đang ở trong một chức năng và đã làm mộtgoto
một nhãn thành một chức năng khác. Điều gì sẽ xảy ra khi chức năng khác trở lại? Ý tưởng này là vô lý.
Điều này không nhất thiết trả lời tại sao Java bao gồm goto
câu lệnh chưa được biên dịch, nhưng điều quan trọng là phải biết tại sao lại goto
được sử dụng ở nơi đầu tiên, trong các ứng dụng cấp thấp hơn và tại sao nó không có ý nghĩa được sử dụng trong Java.