Cool, endlich wird der goto-Befehl angemessen gewürdigt! Der hat mir schon die ein oder andere unnötige if-Verschachtelung gespart.
if (a==0) then goto weiter;
b=c/a;
weiter:;
Lol, sehr effizient programmiert ;-)
Leider findet man immer wieder sowas.
PIX OR IT DIDN'T HAPPN!!1
Hatte ganz vergessen, dass es GOTO in manchen Sprachen noch gibt. THX!
Wer die meisten GOTO verwendet, bekommt einen Teller Spaghetti! :-)
Das da, fand ich in unserem Quellcode -.-
Der "Programmierer" war/ist aber nicht mehr bei uns angestellt
die meines wissens einzige sinnvolle anwendung von goto ist das nachbilden von try&catch in sprachen, die dies anderweitig nicht unterstützen. studis, die in ner klausur goto benutzen, fallen bei mir ohne weiteren kommentar durch :-P
uuurmele schrieb:
--------------------------------------------------------------------------------
> studis, die in ner klausur goto benutzen, fallen bei mir ohne weiteren kommentar
> durch :-P
Hehe, zu welcher Vorlesung?
Ich find manches mit goto besser!
Das z.B.:
private bool AllReadyDone(string md5)
{
bool hasRows = false;
using (SQLiteCommand sQLiteCommand = this.dbcon.CreateCommand())
{
sQLiteCommand.CommandText = "SELECT MD5,plain FROM cracked_passwords WHERE MD5 LIKE @md5 LIMIT 1";
sQLiteCommand.Parameters.AddWithValue("md5", md5);
queryexisting:
try
{
using (DbDataReader dbDataReader = sQLiteCommand.ExecuteReader())
{
hasRows = dbDataReader.HasRows;
}
}
catch (SQLiteException e)
{
if (e.ErrorCode == SQLiteErrorCode.Busy)
{
System.Threading.Thread.Sleep(200);
goto queryexisting;
}
}
}
return hasRows;
}
Goto macht auch Sinn um aus verschachtelten while-Schleifen zu springen ohne mit Flags und break arbeiten zu müssen.
Beispiel:
while(true)
{
while(true)
{
goto end;
}
}
end:
*snip*
Java hat das interessant anders/besser gelöst:
label1 : for(int i =0;;)
{
for(int g =0;;)
{
break label1;
}
}
*snip*
(geht auch mit while ;))
Dann bitte gleich
while(!goto)
Dann sieht man gleich, was dort gemeint ist ;-)
Wo liegt eigentlich das Problem am goto?
Wir lernen gerade Programmieren in C und unser Lehrer sagt er würde uns am nächsten Laternenmast aufknüpfen sollten wir goto verwenden.
Wenn du viele gotos hast die auch noch recht weite und nicht zusammenhängende Sprünge machen kann es u.U. relativ schwer sein, dem Code zu folgen bzw ihn zu verstehen.
Und da man vieles durch sinnvollere Konstrukte wie if/else auch darstellen kann und man so relativ gut sieht, welchen Ablauf das Programm nimmt sollte man es eben möglichst garnicht verwenden.
gin110 schrieb:
--------------------------------------------------------------------------------
> Wo liegt eigentlich das Problem am goto?
>
> Wir lernen gerade Programmieren in C und unser Lehrer sagt er würde uns am
> nächsten Laternenmast aufknüpfen sollten wir goto verwenden.
Wau, ich hatte keine Ahnung, dass es inzwischen so schlimm ist. ;)
Naja, der Code kann sehr unübersichtlich werden, wenn man viel mit GOTO arbeitet. Lieber Bedingungen/Schleifen mit Abbruch-Kriterien bzw. funktionale Programmierung.
Es macht den Code unübersichtlich. Weil ein goto es im Prinzip nach erlaubt irgendwo hin zu springen. Äh... wo war noch der Marker? *such* Zusätzlich ist es eine elende Gefahr einem Programm ein Verhalten bei zu bringen das man nicht erklären kann. Grund ist meist entweder ein defekter Stack (In C/C++ sehr beliebt) oder auch gern ein goto. Weil das Ding einen falschen Marker anspringt oder ihn nicht anspringt.
Das gleiche gilt auch für endlose Bandwürmer (Funktionen/Methoden mit mehr als 300 Zeilen Code), Nichts aussagende Namen für Funktionen, Klassen, Strukturen, Methoden oder Variablen, globale Variablen oder auch immer wieder beliebt, die Nutzung von Variablen in Libs die der Benutzer erst definieren muss. Immer ganz toll.
Auch sehr beliebt sind so scherze wie, sich nicht darum zu kümmern seinen Müll weg zu räumen. Der Benutzer meiner Lib macht das schon, oder... macht ja der Speicher Manager oO.
gin110 schrieb:
--------------------------------------------------------------------------------
> Wo liegt eigentlich das Problem am goto?
>
> Wir lernen gerade Programmieren in C und unser Lehrer sagt er würde uns am
> nächsten Laternenmast aufknüpfen sollten wir goto verwenden.
If kann man viel besser parsen ; einen fiesen Logik Fehler mit Goto und du suchst dich die nächsten 10 stunden zu tode wo der Fehler ist.
GOTO ist schön, aber einfach gefährlich und "hässlich" ; zumindest wenn man sich die neuen Methoden anschaut, wie das oben erwähnte in java mit Labels usw.
Schöne Endlosschleife produziert :)
Goto's sind Wurmlöcher, die alles durchtunneln.
Bei php ist das super, zumal dort html, javascript und css mit integriert werden können.
Alles kann auch eigenständig im selben script auftreten.
Und scripte lassen sich verscripten ;-)
Dazu tauchen dann txt und csv files auf, die selbst wiederum Scriptkomponenten enthalten können.
Keine Ahnung, ob das informatisch gewollt ist.
Macht aber Spaß.
tingelchen schrieb:
--------------------------------------------------------------------------------
> Schöne Endlosschleife produziert :)
Eine Endlosschleife ist das nur, wenn man davon ausgeht, dass die SQLite-Datenbank stets busy ist.
mir wurde es damals noch in Basic an der Schule beigebracht. Vom Rektor presönlich! und auch schön alles in 10er Sprüngen nummerieren.
Die oben genannten Beispiele sind korrekt und es wird auch kritisiert, wenn man mehrere Ausstiegs und Einsprungspunkte hat.
Zum anderen erhält man irgendwann Spagetticode, welcher nicht mehr flüssig von oben nach unten zu lesen ist.
Und wenn dann nach Jahren einer den Code prüfen muss, dann macht man es ihm dadurch auch nicht leicht. Wobei da gibt es noch viele Schlimmere Dinge, wie man jemand in den Wahnsinn treiben kann. Ich hab da schon einiges in den Händen gehabt, wo ich gern dem Entwickler persönlich das Zeug rechts und links vor die Backen hauen möchte.
Kommentare: 171 | letzter Beitrag 20:42 Uhr
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 77 | letzter Beitrag 20:57 Uhr
Kommentare: 70 | letzter Beitrag 18:56 Uhr
Kommentare: 61 | letzter Beitrag 21:29 Uhr
E-Mail an news@golem.de

Laut Apple-Zulieferern wird das iPhone 5 mit einem neuartigen In-Cell-Touchscreen ausgerüstet. Als Hersteller soll Sony infrage kommen. Bislang hieß es, dass Apple Sharp und Toshiba bevorzugen würde.
Das Unternehmen Owncloud entwickele nur Software und biete Support für Kunden, sagte Technikchef Frank Karlitschek auf dem Linuxtag 2012. Darüber hinaus verriet er einige technische Details zu Owncloud 4 und kommenden Entwicklungen.

Das Landgericht Hamburg hat entschieden, dass der Blogger und Rechtsanwalt Markus Kompa für ein via Youtube eingebettetes ZDF-Video als Verbreiter haftet. Geklagt hat ein umstrittener Arzt aus München, der zuvor erfolgreich gegen den Bericht der ZDF-Sendung Wiso vorgegangen war.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.