Es ist wichtig zu verstehen, dass das gotoKonstrukt aus den Tagen stammt, als Programmierer in Maschinencode und Assemblersprache programmierten. Da diese Sprachen so einfach sind (wie in, jeder Befehl macht nur eine Sache), erfolgt der Programmsteuerungsfluss vollständig mit gotoAnweisungen (in der Assemblersprache werden diese jedoch als Sprung oder Verzweigung bezeichnet ).
Obwohl die C-Sprache relativ niedrig ist, kann sie als Assemblersprache auf sehr hoher Ebene betrachtet werden. Jede Anweisung und Funktion in C kann leicht in Assembler-Anweisungen unterteilt werden. Obwohl C heutzutage nicht die Hauptsprache zum Programmieren von Computern ist, wird es in Anwendungen auf niedriger Ebene wie eingebetteten Systemen immer noch häufig verwendet. Da die Funktion von C die Funktion der Assemblersprache so stark widerspiegelt, ist es nur sinnvoll, dass gotosie in C enthalten ist.
Es ist klar, dass Java eine Weiterentwicklung von C / C ++ ist. Java hat viele Funktionen von C gemeinsam, abstrahiert jedoch viel mehr Details und ist daher einfach anders geschrieben. Java ist eine Sprache auf sehr hoher Ebene, daher ist es einfach nicht erforderlich, Funktionen auf niedriger Ebene zu haben, wie gotowenn Konstrukte auf höherer Ebene wie Funktionen für jede und während Schleifen den Programmsteuerungsfluss ausführen. Stellen Sie sich vor, Sie wären in einer Funktion und hätten gotoeine Beschriftung in eine andere Funktion übernommen. Was würde passieren, wenn die andere Funktion zurückgegeben würde? Diese Idee ist absurd.
Dies beantwortet nicht unbedingt, warum Java die gotoAnweisung enthält , sie jedoch nicht kompilieren lässt, aber es ist wichtig zu wissen, warum sie gotoüberhaupt in Anwendungen auf niedrigerer Ebene verwendet wurde und warum es einfach keinen Sinn macht, sie zu verwenden in Java verwendet.