Java goto FRAGE?

... komplette Frage anzeigen

7 Antworten

Ok ganz kurz.
Gotos in Massen sind zu vermeiden, ja.
Aber ein oder 2 gezielte können sogar helfen, da man das ganze drum herum ersparrt.

Nun zu gotos in Java: Hierzu findet sich auf Gerson Kurz' Seite was tolles.
http://www.p-nand-q.com/programming/obfuscation/java/computed_gotos_howto.html

Bitte genau angucken. Hilft sehr komplexere Strukturen zu verstehen. Falls es nicht geht dann frag nach. Dann erklär ich's.

Antwort bewerten Vielen Dank für Deine Bewertung

goto ist eine Unart aus Batch, die man sich beim Programmieren lernen ganz schnell abgewöhnen sollte. goto ist böse! Lass uns das mal durchspielen. Wir haben die Sprungmarken :1, :2, :3 (die erstmal zu :2 springt), :4, :5 (:5 enthält auch :6 und :7) und :8 und :9. :1 und :9 springen jeweils zueinander.. Nun soll :10, :5a und :5b dazukommen, dafür soll :4 weg. Und, hast du schon einen Knoten im Kopf? Das bezeichnet man nämlich als "Spagetticode" und da siehst du irgendwann überhaupt nicht mehr durch.

https://de.wikipedia.org/wiki/Spaghetticode

Das Beispiel aus dem anderen Kommentar hattest du schon fast richtig


if (x==2) {

// do something

}


else if (x==3) {

// do something else

}

Allgemein empfiehlt es sich auch (gerade, wenn du erst seit 6 Tagen dabei bist), systematisch mit einem Buch oder einem Tutorial zu üben und nicht irgendwas drauflos zu coden, was dann aus irgendwelchen Gründen vielleicht ein bisschen funktioniert, du aber nicht verstehst, warum eigentlich...

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Pokecrafter567
25.04.2016, 21:34

Ja ich gucke mir ja tutorials an bzw so eine tutorial reihe, aber ich habe schon ohne hilfen einen taschenrecher programmiert der 2 zahlen berechnet und diese addieren, subtrahieren, multiplizieren und dividieren kann. Also ich weiß schon was ich schreibe... :)

Danke

0
Kommentar von PerfectMuffin
25.04.2016, 21:46

Wenn man goto richtig verwendet, sieht es in etwa aus, wie Assembler.

Übrigens verwendet Java Sprungbefehle im Bytecode(muss ja). Für nicht-Jasmin Programmierer nicht relevant, aber ein nettes Detail.

0
Kommentar von 3v1lH4x0R
25.04.2016, 22:34

Goto kommt nicht aus Batch. Und ich finde es sollte schon relevant sein, wenn man versteht wie der Bytecode am Ende aussieht schreibt man viel besseren Code. Also meiner Erfahrung mit Leuten nach. Außerdem is Jasmin nur einer von vielen JVM Assemblern.

0

Wenn man als erstes eine Programmiersprache gelernt hat in der mit Goto gearbeitet wird (alte BASIC-Dialekte oder Assembler) dann mag man gar nicht glauben dass es ohne Goto geht.
Ich programmiere seit mindestens 15 Jahre ohne Goto - und habe diesen Befehl auch nie vermisst.

Die beiden Kontrollstrukturen   IF-THEN-ELSE und WHILE würden zusammen mit Methodenaufrufen bereits ausreichen um alles zu machen was man mit einem Goto machen könnte.

In Java hat man obendrein noch FOR, CASE und BREAK und CONTINUE sowie RETURN - und braucht definitiv keinen GOTO

Antwort bewerten Vielen Dank für Deine Bewertung

In einen Block hineinzuspringen, ist verboten.

Ein brauchbarer Compiler wird es dir auch gar nicht erst erlauben. 

Der Goto-Befehl macht nur Sinn, einen Block vorzeitig zu verlassen.

Antwort bewerten Vielen Dank für Deine Bewertung

Goto ist Bääh und das in jeder Sprache . Nur in COBOL und Assembler kommt man in der Regel nicht ohne aus.

Um Dein Beispiel aus dem Kommentar aufzugreifen:

if (x == 3)

    ProcessFirstCase();

else if (x == 5)

    ProcessSecondCase();

weitere Aktionen;

Für solche Aktionen hat man {...} und Methoden erfunden.

Antwort bewerten Vielen Dank für Deine Bewertung

Lass goto's, das braucht man in Java überhaupt nicht!!!! Gotos = sch*** Code.

Antwort bewerten Vielen Dank für Deine Bewertung

In Java ist goto Tabu. Mache Schleife, Rekursion oder Funktion!


Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?