Es ist wichtig zu verstehen, dass das goto
Konstrukt 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 goto
Anweisungen (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 goto
sie 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 goto
wenn 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 goto
eine 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 goto
Anweisung 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.