Goto-Befehl mehrfach als böse eingestuft.
Übersicht

HallosagerBetreff: Goto-Befehl mehrfach als böse eingestuft. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich mache seit Jahren immer Spiele mit dem Befehl:
.Hallo 1=Input("1+1=? ") If 1=2 Then end If 1<>2 Then cls:Goto Hallo Aber viele Leute hassen Goto. Was kann ich dann nehmen? Es gibt so viele Schleifen aber ich kapier nicht alle und außerdme gehen sie nie, wenn ich sie irgendwo in einem größeren Programm einbau. |
||
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Normalerweise sollten alle Schleifen funktionieren. ![]() Außerdem könntest du z.B. Funktionen verwenden |
||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schleifen sind im Grunde auch nicht mehr als gotos, nachdem das programm compiliert wurde
Code: [AUSKLAPPEN] repeat ...machwas until keyhit(1) ist im Grunde das gleiche wie Code: [AUSKLAPPEN] .start ...machwas if not keyhit(1) then goto start Goto ist nur dann böse, wenn man es nicht richtig verwendet, also so gennanten Spaghetti-code produziert, aber solange du es für dich benutzt und noch die übersicht hast, ist es deine Sache, nur solltest du diesen Code dann nicht an andere weitergeben, weil sich die anderen dann wahrscheinlich nciht zurecht finden werden. zu qbasic zeiten habe ich es auch noch benutzt, aber mittlerweile habe ich es mir abgewöhnt, der übersichtlichkeit wegen. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Hallosager |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und was ist, wenn ich mehrere Gotos in ein Spiel reintun will? Irgendwie funktioniert da nur eines. | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann ist dein Code einfach nur schlecht strukturiert und wir sind wieder bei Spaghetti-Code ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Plasma(alt)Betreff: goto |
![]() Antworten mit Zitat ![]() |
---|---|---|
zum 3000. mal goto's sind evil ![]() ![]() (quatsch) |
||
DIV is dead ! |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
man sollte auch mal ganz klar feststellen das BB-gotos nicht DIE bösen gotos sind von denen alle welt spricht.
unter bb kann man mit goto nicht in oder aus einer funktion springen. mit den gotos der meisten sprachen geht das, und dann kann der code wirklich unleserlich werden. dennoch hilft goto nicht unbedingt die übersicht zu behalten und sollte vermieden werden. aber als ersatz für eine schleife ist goto beleibe nicht vozuziehen. (auch von wegen optimierung beim kompilieren) zudem würde ich mir an deiner stelle unbedingt die syntax von BB nochmal genau ansehen. also: Variablen, Kontrollstrukturen... alles was in der onlinehilfe unter 2D->BASIC zu finden ist. wenn du dich ein wenig eingearbeitet hast und mehr ahnung besitzt was eine programmiersprache eigentlich ist, wirst du sehen das sich die meisten höheren sprachen in ihrer grundstruktur sehr stark gleichen. wenn du jemals programmieren können willst must du die grundlagen ohnehin beherrschen, egal welche sprache du später verwendest. also fang schon heute an es zu lernen ![]() mfg stfighter ps.: es gibt nicht viele schleifen, es gibt 2(3): while wend und repeat until bzw. repeat forever und der unterschied ist auch nur WO die abfrage stattfindet. |
||
Denken hilft! |
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht zu vergessen die For ... Next Schleife ![]() |
||
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle! Fraget euren Arzt oder Apotheker! |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich benutze auch Goto was zum Teil nicht nur einfacher, sondern auch übersichtlicher ist!
Aber auch nur für ganz bestimmte Sachen Beispiel BlitzBasic: [AUSKLAPPEN] For ball.Ball= Each Ball |
||
[BB2D | BB3D | BB+]
|
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In diesem Falle noch nie von Continue und/oder Exit gehört, definitiv ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Exit ist mir ein Begriff, benutze das auch meistens, aber das funktioniert selbst bei dem Beispiel nicht, da die Schleife ja verlassen wird!
2. Continue kenn ich nicht, hört sich aber schon toll an, wenn es das ist was ich denke! Kannste mir da mal ein Mini-Beispiel dafür zeigen! |
||
[BB2D | BB3D | BB+]
|
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Exit ist genau für obiges Beispiel:
Code: [AUSKLAPPEN] repeat if keyhit (1) ; verlässt die repeat loop exit endif forever sum = 0 for i = 1 to 100 if i mod 2 = 0 ; sorgt dafür, dass nur ungerade zahlen genommen werden continue endif sum = sum + i next |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
er will die loop ja nicht verlassen, sondern eins weiterspringen. daher wäre exit wohl verkehrt, dreamora. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Fürs 1 weiter springen ist continue a ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
BB hat aber kein Continue und für einen Continue Ersatz ist GoTo wohl legitim.
Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Fürs 1 weiter springen ist continue a
Das wäre eine Alternative, nur dumm das BlitzBasic den Befehl "continue" nicht kennt, oder habe ich da nicht die passende BB-Version? Pb kennt den Befehl zB! |
||
[BB2D | BB3D | BB+]
|
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich benutze zu 99% GOSUBs und zu 1% GOTOs. Damit komme ich wunderbar klar.
Es gibt sehr selten Fälle, wo ein GOTO ideal ist, meistens kann man aber den Code anders konstruieren, so daß GOTO überflüssig wird. Mach es wie du es willst, hauptsache es funktioniert. |
||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich benutze Goto ausschliesslich als Notlösung um aus mehreren verschachtelten Schleifen oder If - then Konstruckten zu Springen. Allerdings lässt sich dieser Befehl bei vorrausschauender Programmierung leicht umgehen. | ||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
MasterK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gosub... bist du davon immer noch nicht losgekommen, Omenaton_2?
goto mag in manchen situationen vorsichtig dosiert eingesetzt durchaus seine berechtigung haben. gosub ist ein überbleibsel den niemand mehr braucht. |
||
+++ www.masterk.de.vu +++
Lila FTW! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nö isses net.
Im Unterschied zu Functions kannst du mit Gosub den gleichen Variablenraum nutzen wie das Hauptprogramm. Speziell für Dinge wie Eingabeverarbeitung etc eine sehr praktische Sache da B3D / BB+ keine Funktionspointer haben. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group