Ważne jest, aby zrozumieć, że goto
konstrukcja jest pozostałością po dniach, w których programiści programowali w kodzie maszynowym i języku asemblera. Ponieważ te języki są tak podstawowe (jak w, każda instrukcja robi tylko jedną rzecz), przepływ sterowania programem odbywa się całkowicie za pomocą goto
instrukcji (ale w języku asemblera są one nazywane skokami lub rozgałęzieniami instrukcjami ).
Teraz, chociaż język C jest dość niskim poziomem, można go traktować jako bardzo asemblerowy język asemblera - każdą instrukcję i funkcję w C można łatwo podzielić na instrukcje języka asemblerowego. Chociaż C nie jest obecnie głównym językiem do programowania komputerów, nadal jest intensywnie wykorzystywany w aplikacjach niskiego poziomu, takich jak systemy wbudowane. Ponieważ funkcja C tak ściśle odzwierciedla funkcję języka asemblera, ma to sensgoto
jest uwzględniona w C.
Oczywiste jest, że Java jest ewolucją C / C ++. Java ma wiele funkcji z C, ale wyodrębnia znacznie więcej szczegółów i dlatego jest po prostu napisana inaczej. Java jest językiem bardzo wysokiego poziomu, więc po prostu nie jest konieczne posiadanie funkcji niskiego poziomu, na przykład goto
gdy więcej konstruktów wyższego poziomu, takich jak funkcje, dla każdego z nich, a podczas pętli podczas sterowania programem. Wyobraź sobie, że byłeś w jednej funkcji i zrobiłeś goto
etykietę innej funkcji. Co by się stało, gdy druga funkcja powróci? Ten pomysł jest absurdalny.
To niekoniecznie odpowiada, dlaczego Java zawiera goto
instrukcję, ale nie pozwala jej na kompilację, ale ważne jest, aby wiedzieć, dlaczego w goto
ogóle była używana w aplikacjach niższego poziomu i dlaczego po prostu nie ma sensu być używane w Javie.