Wert von Array an Stelle auslesen, wo Array nicht beschrieben ist

Zuviel Werbung?
-> Hier kostenlos registrieren
Wie hier schon angemerkt gibt es immer mehr als eine Möglichkeit zum Ziel zu kommen - aber es gibt ein BESSER und ein SCHLECHTER ...

Wenn ich ein Array durchsuchen möchte, bei dem ich ja immer dessen Größe kenne, ist aus meiner Sicht IMMER die Variante FOR .. TO der bessere Weg.
Jetzt kann es aber auch sein, dass ich einen Bereich durchsuchen möchte dessen Größe ich nicht kenne - z.B. eine CSV-Datei. Hier wäre aus meine Sicht dann WHILE mit der Abbruch-Bedingung EndOfFile der bessere Weg (und dann eben Exit wenn gefunden was gesucht).

Das jetzt nur mal so als Anmerkung dazu ...
 
z.B. eine CSV-Datei. Hier wäre aus meine Sicht dann WHILE mit der Abbruch-Bedingung EndOfFile der bessere Weg (und dann eben Exit wenn gefunden was gesucht).
Grundsätzlich: ja...
da wir dann aber die Größe nicht kennen und nicht wissen, wie lange die Schleife dann arbeiten würde, könnte ich auch wieder in eine Zykluszeitüberschreitung kommen. Also selbst hier würde ich (vermutllich) eine FOR-Schleife nehmen, um dem Programm pro Zyklus eine maximale Anzahl an zu verarbeitenden Zeilen zu genehmigen. Und beim nächsten Zyklus dann an der letzten Stelle weiterarbeiten. Auch hier dann das EOF als Exit-Bedingung in die Schleife.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@JSEngineering :
Da hast du auch nicht unrecht - hier ging es mir aber darum, darzustellen, wann die WHILE-Schleife ggf. der bessere Ansatz wäre.
Innerhalb der SPS wäre WHILE generell nicht so mein Ding - innerhalb einer Visu kann man das aber ganz gut so machen und muss auch keine Angst vor Zeit-Überläufen haben ...
 
Seine Erklärung war, dass das Abbrechen einer For-Schleife nie logisch notwendig ist. Die Bedingung, die dazu führt, dass das Exit aufgeführt wird, kann man auch so in eine While-Schleife verbauen, dass diese abbricht. Er hat aber zugegeben, dass er nicht wirklich weiß, wie Clean Coding Literatur dem Thema gegenübersteht. Wie ich das also sehe, treffen hier lediglich zwei Programmierstile aufeinander
Das stimmt natürlich. Es gibt viele Wege die nach Rom führen.
Jedoch ist zum Verständnis m.M.n. der Weg über FOR und EXIT einfacher zu begreifen.
Aber wie du schon sagst, der eine macht es so, der andre so. Sind eben unterschiedliche Programmierstile.

-Stirni
 
Habe es nachgelesen, die Bedingung wird nach jedem While-Schleifen Durchlauf neu gecheckt. Dann verstehe ich deine Frage nicht
Das gilt aber strenggenommen für die Repeat-Schleife. Bei der WhileSchleife wird VOR einem SchleifenDurchlauf geprüft, ob er noch ausgeführt werden soll.

Die in diesem Thread genannten, verschiedenen AnwendungsGebiete für die 3 verschiedenen SchleifenTypen (Do While, Repeat Until und For ... Step ... To) haben sich doch ursprünglich die Verfechter der strukturierten Programmierung ausgedacht. Das sind diejenigen, die vorbehaltlos gegen GoTo und einen vorzeitigen Abbruch von Schleifen wettern. AbbruchMöglichkeiten waren deshalb von vornherein nicht vorgesehen.
Seit sie aber als praktisch angesehen und in immermehr ProgrammierSprachen angeboten werden, tragen sie u.a. dazu bei, dass man zeimlich frei zwischen For-Schleife einerseits und While- bzw. Repeat-Schleife andererseits wählen kann, ohne sich einen Kopf machen zu müssen, welcher SchleifenTyp der angeblich einzig passende wäre.
Eigentlich kann man ja nur eine ForSchleife vorzeitig abbrechen ... wann der ZeitPunkt gekommen ist, eine While- oder Repeat-Schleife - NEIN, keinesfalls vorzeitig - abbzubrechen, sondern ausschliesslich ganz normal zu beenden, das steht ja nicht vorher schon fest. Und trotzdem, Auch While- und Repeat-Schleifen können mittlerweile in vielen Sprachen "vorzeitig" abgebrochen werden.
Die Puristen sind zu tiefst gekränkt, angesichts solch frevelhafter Verstösse gegen die Prinzipien der strukturierten Programmierung. Und die Praktiker freuen sich über die ArbeitsErleichterung.
Die o.g. Puristen sind vermutlich dieselben, die nie und nimmer nicht das Wort 'hexadezimal' in den Mund nehmen würden, weil es aus lateinischen und griechischen SprachElementen (pfui! igitt! welch StilBruch!) zusammengeschustert wurde. Für sie heisst es deshalb selbstverständlich 'sedezimal'. Sie würden ferner nie 'editieren' sagen/schreiben, sondern 'edieren'.
Ich finde, man muss nicht alles grundsätzlich verdammen/verbieten, was bei manch penibler BetrachtungsWeise nicht absolut astrein formuliert ist, zumal dann nicht, wenn die Formulierung verständlich ist und sie sich schon so sehr "eingebürgert" hat, dass sie nicht mehr totzukriegen ist.
 
Zurück
Oben