Hallo alle zusammen,
ich bräuchte eure Hilfe
ich benötige den Befehl um in meinem Programm an eine bestimmte Stelle zu springen ...(((((wenn(blabla) dann gehe zu Zeile xy)))))
schonmal danke
Ich verstehe Bahnhof...
http://de.wikipedia.org/wiki/Spaghetticode
im englischen Wiki steht sogar under CLEAN: drin wie man es richtig macht...
http://en.wikipedia.org/wiki/Spaghetti_code
Lesenswert ist aber auch dieser Artikel...
http://en.wikipedia.org/wiki/Interna...C_Code_Contest
Aber es gibt auch wirklich ein goto statement in c, z.B. da beschrieben:
http://www.acm.uiuc.edu/webmonkeys/b...guide/1.6.html
Allerdings findet man sowas auch mit der Suchmaschine seines Vertrauens...
LG Rolf
Geändert von RolfD (15.10.2012 um 19:03 Uhr)
Sind Sie auch ambivalent?
Wie gehts mit Flughafen?
http://www.rn-wissen.de/index.php/C-...goto-Anweisung
Dafür gibt es in C den GOTO-Befehl, einfach mal Google danach fragen, dort gibt es viele gute Tutorials. Oder das von Oberallgeier aufgeführte Buch in dem verlinkten Beitrag (K&R), das ist wirklich gut!
Ich möchte hier jetzt keinen neuen "Glaubenskrieg" entfachen, aber:
Im Allgemeinen ist GOTO bei C-Programmierern sehr verpönt und sollte nur dann benutzt werden, wenn Du es WIKLICH brauchst (und dann auch eher in Assembler).
Für mich klingt Dein Fall aber eher nach Code-Smell
Daher solltest Du Dein Programm eher so strukturieren: wenn(blabla) dann führe Methode XY aus. So kannst Du auch später noch gut nachvollziehen, was Du damals eigentlich geschrieben hast.
Beispiel:etc.Code:if(bumper_left){ ausweichen_links(); }
Grüße,
Max
http://www.leo.org/information/freizeit/fun/pascal.html
Lang lebe FORTRAN!
LG Rolf
Sind Sie auch ambivalent?
Vielen dank für eure Antworten...
hab den code jetzt so ...
if(obstacle_right) //Hinderniss rechts//
{
move(40, BWD, DIST_MM(20), true);
rotate(40, LEFT, 10, true);
moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
A:
if(!obstacle_right)
{
move(40, BWD, DIST_MM(10), true);
rotate(40, LEFT, 5, true);
move(40, FWD, DIST_MM(10), true);
moveAtSpeed(80,80);
}
else
{
goto A;
}
}
irgendwas klappt aber no ned so ganz....
schonmal danke....
Sag ich doch, dass Du kein sinnvolles Goto brauchen wirst Außer in Assembler habe ich das bisher auch noch nie benötigt.
Das GOTO in Deinem Code hat eigentlich nur einen Zweck: es macht den Code schwerer nachvollziehbar. Mehr nicht.
Tip: Immer beschreiben, was genau nicht geht und was der Code machen soll. In dem Fall können wir das zwar erraten, aber das ist nicht immer so.irgendwas klappt aber no ned so ganz....
Schau Dir mal die Demoprogramme des RP6 an, da sind schon einige gute Lösungen, um Hindernisse zu umfahren. Besonders zu empfehlen ist das "Move_05"-Beispiel,
das bietet Dir schon einmal eine Grundarchitektur, um verschiedene Verhaltensmuster umzusetzen.
Grüße,
Max
Mensch ja, er baut ein Goto ein...wo ist das problem dabei, außer das er nicht weiß wo es hin geschreiben werden muß...
Jetzt sind zwanzig Zeilen ja soooo unglaublich schwer zu lesen...man man man man
Er hat nach einer Sprunganweisung gefragt: GOTO ist eine "erlaubte" Sprunganweisung. <- Punkt
Lesezeichen