Penting untuk dipahami bahwa goto
konstruk tersebut merupakan sisa dari hari-hari yang diprogram oleh programmer dalam kode mesin dan bahasa rakitan. Karena bahasa-bahasa itu sangat mendasar (seperti dalam, setiap instruksi hanya melakukan satu hal), aliran kontrol program dilakukan sepenuhnya dengan goto
pernyataan (tetapi dalam bahasa assembly, ini disebut sebagai instruksi lompat atau cabang ).
Sekarang, meskipun bahasa C adalah level yang cukup rendah, ia dapat dianggap sebagai bahasa assembly tingkat sangat tinggi - setiap pernyataan dan fungsi dalam C dapat dengan mudah dipecah menjadi instruksi bahasa assembly. Meskipun C bukan bahasa utama untuk memprogram komputer dengan saat ini, masih banyak digunakan dalam aplikasi tingkat rendah, seperti sistem embedded. Karena fungsi C sangat dekat dengan fungsi bahasa assembly, maka masuk akal jika goto
dimasukkan dalam C.
Jelas bahwa Java adalah evolusi C / C ++. Java berbagi banyak fitur dari C, tetapi abstrak lebih banyak detailnya, dan karenanya ditulis secara berbeda. Java adalah bahasa tingkat sangat tinggi, jadi tidak perlu memiliki fitur tingkat rendah seperti goto
ketika lebih banyak konstruksi tingkat tinggi seperti fungsi, untuk, untuk masing-masing, dan sementara loop melakukan aliran kontrol program. Bayangkan jika Anda berada dalam satu fungsi dan melakukan goto
label ke fungsi lain. Apa yang akan terjadi ketika fungsi lainnya kembali? Gagasan ini tidak masuk akal.
Ini tidak selalu menjawab mengapa Java menyertakan goto
pernyataan itu tetapi tidak akan membiarkannya dikompilasi, tetapi penting untuk mengetahui mengapa goto
pernah digunakan di tempat pertama, dalam aplikasi tingkat rendah, dan mengapa itu tidak masuk akal untuk menjadi digunakan di Jawa.