Ważne jest, aby zrozumieć, że gotokonstrukcja 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ą gotoinstrukcji (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 gotogdy 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ś gotoetykietę innej funkcji. Co by się stało, gdy druga funkcja powróci? Ten pomysł jest absurdalny.
To niekoniecznie odpowiada, dlaczego Java zawiera gotoinstrukcję, ale nie pozwala jej na kompilację, ale ważne jest, aby wiedzieć, dlaczego w gotoogóle była używana w aplikacjach niższego poziomu i dlaczego po prostu nie ma sensu być używane w Javie.