Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Vor- und Nachteile der PHP-Goto-Anweisung
Sie können auf den ersten Blick erkennen, dass es ein Kind ist, das den Unterschied zwischen Gehe zu und Anruf nicht erkennen kann
Wenn Sie dann in der Gruppe Code eingeben, das Kätzchen benutzte Do...LoopLoop, aber ein Kind in der Gruppe fragte Do... Was ist Loop? -_-|||Als Ergebnis sagte eine Gruppe von Leuten, dass sie selten Do...Loop-Schleifen verwenden und die meisten von ihnen gerne Goto verwenden. Ich habe dieses Problem nicht entdeckt, dass man Goto nicht verwenden kann, sondern dass es so ist Verwenden Sie Goto less! ! !
Genug mit dem Unsinn, kommen wir zur Sache
Erklären Sie zunächst den Unterschied zwischen Goto und Call für Anfänger
Goto wird verwendet, um zum Code zu springen, also wann Der Code wird zu Goto ausgeführt, an die von Rem angegebene Position springen und nach unten ausgeführt . Nach Abschluss der Ausführung wird nicht zur nächsten Zeile der Goto -Anweisung zurückgekehrt.
Call wird auch zum Springen von Codes verwendet, genauer gesagt wird Call zum Aufrufen von Unterprogrammen verwendet! Was ist ein Anruf? Das heißt, wenn der Aufruf ausgeführt wird, wird die angegebene Unterroutine (Sub) in den Code eingefügt. Wenn die Unterroutine ausgeführt wird, kehrt sie zur nächsten Zeile der Call -Anweisung zurück und setzt die Ausführung nach unten fort.
Wenn es schwer zu verstehen ist, verwenden wir zur Erklärung den Code des am Anfang erwähnten Klassenkameraden:
|
Dies ist die Call-Anweisung | ||||
1. Rem A 2. If false 3. goto B 4. End If 5. 6. Rem C 7. if true 8. goto A 9. ElseIf false 10. goto B 11. else 12. goto C 13. End If 14. 15. Rem B 16. //这样的代码可读吗,你可以划出流程图吗。而且goto完全是可以用其他语句代替的。 |
1. Do 2. Do 3. Do 4. If true 5. Goto 停止//利用goto跳出深层嵌套 6. End If 7. Loop 8. Loop 9. Loop 10. 11. Rem 停止 |
OK, die beiden Unterschiede wurden klar erklärt. Lassen Sie uns nun über dieses Thema sprechen, die Vor- und Nachteile von Goto-Anweisungen! ! !
Wie ich oben sagte, befürworte ich, dass Goto weniger verwendet werden sollte und nicht missbraucht werden darf. Einer der Hauptgründe ist, dass die Goto-Anweisung die Programmstruktur zerstört und das Programm weniger lesbar macht , Zwei haben vielleicht keine große Wirkung, aber was ist, wenn Sie mehr als ein Dutzend Gotos verwenden?
Die folgende Passage stammt aus der Baidu-Enzyklopädie (wenn Sie der Meinung sind, dass sie zu viel ist, müssen Sie nur den Abschnitt „Ergebnisse der Goto-Anweisung“ lesen)
Ursprung des Problems:
Seit Mitte der 1960er Jahre hat sich die Computerhardware-Technologie von Tag zu Tag verbessert. Die Speicherkapazität, die Rechengeschwindigkeit und die Zuverlässigkeit der Datenverarbeitung sind erheblich gestiegen, und die Kosten für die Herstellung von Hardware sind weiter gesunken. Der Rückgang der Computerpreise hat hervorragende Voraussetzungen für eine breite Anwendung geschaffen. In dieser Situation ist es dringend erforderlich, dass sich Computersoftware daran anpasst. Daher wurden einige Anforderungen für die Entwicklung großer Softwaresysteme gestellt. Der Fortschritt der Softwaretechnologie konnte den Anforderungen der Entwicklung der Situation jedoch nicht gerecht werden. Im Entwicklungsprozess großer Software sind drei Hauptprobleme aufgetreten: hohe Komplexität, langer Entwicklungszyklus und Schwierigkeiten bei der Gewährleistung der Genauigkeit . Es gibt keine Lösung für die aufgetretenen Probleme, was dazu führt, dass sich die Probleme häufen und eine Situation entstehen, die für die Menschen schwer zu kontrollieren ist. Es entsteht die sogenannte „Softwarekrise“. Um diese Krise zu überwinden, ist es einerseits notwendig, eine Reihe von Forschungen zu Themen wie Programmiermethoden, Programmkorrektheit und Softwarezuverlässigkeit durchzuführen, andererseits ist es auch notwendig, Forschungen zu Softwaremethoden durchzuführen Vorbereitung, Prüfung, Wartung und Verwaltung, wodurch Programmiermethodik entsteht.
Die Ansicht, dass Goto-Anweisungen schädlich sind:
1968 schlug E.W. Dykstra erstmals das Argument vor, dass „GOTO-Anweisungen schädlich sind“, um die traditionellen Programmiermethoden vor Herausforderungen zu stellen die der Diskussion über Programmiermethoden große Aufmerksamkeit geschenkt haben.
Kontroverse um die Goto-Anweisung:
In den späten 1960er und frühen 1970er Jahren war die Debatte über die Verwendung der GOTO-Anweisung heftig. Leute, die das Entfernen der GOTO-Anweisung aus höheren Programmiersprachen befürworten, glauben, dass die GOTO-Anweisung eine schädliche Anweisung ist, die den größten Einfluss auf die Programmstruktur hat. Ihr Hauptgrund ist, dass die GOTO-Anweisung das Programm statisch macht 🎜> Struktur und dynamische Struktur Inkonsistenzen erschweren das Verständnis und die Fehlerbehebung des Programms. Nach dem Entfernen der GOTO-Anweisung kann der Programmausführungsprozess direkt aus der Programmstruktur abgeleitet werden. Auf diese Weise wird nicht nur die Programmstruktur klar, leicht verständlich und fehlerüberprüfbar gemacht, sondern auch die Korrektheit des Programms nachgewiesen.
Gegner glauben, dass die GOTO-Anweisung flexibler zu verwenden ist und in einigen Fällen die Effizienz des Programms verbessern kann. Wenn die GOTO-Anweisung vollständig gelöscht wird, führt dies in manchen Fällen dazu, dass das Programm zu komplex wird und unnötige Berechnungen erforderlich werden.Zur Lösung der Goto-Aussage:
1974 gab D.E. Knuth einen umfassenden und fairen Überblick über die Kontroverse um die GOTO-Aussage:Die uneingeschränkte Verwendung der GOTO-Anweisung, insbesondere die Verwendung der zurückspringenden GOTO-Anweisung, führt zu einer Änderung der Programmstruktur ist schwer zu verstehen. In diesem Fall sollten Sie versuchen, die Verwendung der GOTO-Anweisung zu vermeiden. In anderen Fällen ist es jedoch erforderlich, einige GOTO-Anweisungen kontrolliert zu verwenden, um die Effizienz des Programms zu verbessern, ohne die gute Struktur des Programms zu zerstören. In seinen Worten: „In einigen Fällen befürworte ich die Streichung der GOTO-Erklärung; in anderen Fällen befürworte ich die Einführung der GOTO-Erklärung.“ Seitdem ist diese 10 Jahre alte Debatte beigelegt.
Später bewiesen G. Gaccopini und C. Boehm theoretisch, dass jedes Programm durch Sequenz-, Verzweigungs- und Wiederholungsstrukturen dargestellt werden kann. Diese Schlussfolgerung zeigt, dass das Entfernen der GOTO-Anweisung aus einer höheren Programmiersprache keinen Einfluss auf die Programmierfähigkeiten der höheren Programmiersprache hat und die Struktur des geschriebenen Programms klarer ist. [/hide]gotoDas Ergebnis der Anweisung:
Die goto-Anweisung bleibt in fortgeschrittenen Programmiersprachen
wie C/C++ erhalten, es wird jedoch empfohlen, sie nicht oder nur sparsam zu verwenden. In einigen如果有仔细看上面这段话的同学,相信能明白goto语句的利与弊了吧?
好吧,还是用代码来解释:
滥用goto语句的例子 |
合理利用goto语句 |
1. Rem A 2. If false 3. goto B 4. End If 5. 6. Rem C 7. if true 8. goto A 9. ElseIf false 10. goto B 11. else 12. goto C 13. End If 14. 15. Rem B 16. //这样的代码可读吗,你可以划出流程图吗。而且goto完全是可以用其他语句代替的。 |
1. Do 2. Do 3. Do 4. If true 5. Goto 停止//利用goto跳出深层嵌套 6. End If 7. Loop 8. Loop 9. Loop 10. 11. Rem 停止 |
讲解就到这里了,小猫的想法就是建议大家如果能不用goto就不用goto,尽量多使用Call,如果想跳出循环,每种循环都有对应的跳出语句,如exit do,exit for,exit sub,Exit Function
另外当大家需要用到循环时,建议使用Do...Loop和For...Next两者,而while循环比较绕口,完全可以用do和for代替他
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Vor- und Nachteile der PHP-Goto-Anweisung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!