ich wollte, um eine eine Info-Übungsaufgabe schnell zu lösen, statt mit Java mit PB_4.01 arbeiten. Dabei ist mir aufgefallen, dass bei einer For-Schleife der Abbruch nicht mit den Größer- und Kleiner-als-Operator zusammenarbeitet.
Das ganze ist jetzt nicht sonderlich schwerwiegend und die Frage mag berechtigt sein, wer wohl in einer for-Schleife mit "<" und ">" arbeitet , verwirrt hat es mich aber trotzdem.
Es gibt 10 Arten von Menschen: Jene, die das Binärsystem verstehen und jene, bei denen das nicht der Fall ist.
irgendwelche ausdrücke sind dort nicht erlaubt, sind auch in keiner weise sinnvoll.
wenn du die end-bedingung mit einem vergleichsoperator versehen willst,
dann nimm eine while-schleife, oder eine repeat-schleife.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Ich finde es selbst syntaktisch nicht optimal, aber als falsch würde ich es nicht bezeichnen.
Ist zwar jetzt ein blödes Argument, aber "in Java geht es doch auch mit <"
Von selbst wäre ich nie auf die Idee gekommen, in For-Schleifen solche Operatoren zu verwenden.
Es gibt 10 Arten von Menschen: Jene, die das Binärsystem verstehen und jene, bei denen das nicht der Fall ist.
Der Ausdruck müßte ja extra zur Laufzeit ausgewertet werden, wäre mit
unnötigen Performanceeinbussen verbunden, also unerwünscht
java und PB vergleichen bringt sowieso nicht viel, 2 total unterschiedliche Welten
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
JAVA ist eine sehr junge sprache, grad mal 10 jahre alt oder so...
dass dort für ein neues Schleifenkonstrukt alte begriffe verwendet wurden,
würde ich sogar eher als designfehler bezeichnen,
aber vielleicht ist den entwicklern einfach nix anderes eingefallen.
die For-Schleife ist eine der ältesten schleifenkonstrukte überhaupt, und gehorcht ziemlich klaren regeln.
die abbruchbedingung ist immer ">=" bei positivem step und "<=" bei negativem step,
wobei sogar der "step" an sich noch eine "neuere" erfindung ist.
das ursprüngliche konstrukt sah lediglich eine regelmaßige aufwärtsschleife mit einer schrittweite von 1 vor.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
java ist java. pb ist pb.
in java wird die abbruchbedingung ja vollständig von dir definiert (in negativer form, also als 'continue-bedingung')
in pb ist die operation schon vordefiniert: i<n ..und du gibst nur n an, kannst dies aber dennoch als ausdruck machen, aber nur als arithmetischen und nicht als boolschen.
Macro ForEx(Expression1, Expression2)
Expression1
While (Expression2) Or #False
EndMacro
Macro NextEx(Expression3)
Expression3
Wend
EndMacro
i.l
ForEx(i=0, i<10)
Debug i
NextEx(i + 1)
Normalerweise sollte das Expression3 im letzten Parameter des ForEx sein, dann wärs Java/PHP/C++ ähnlicher.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.