JavaNeuling schrieb:
> Walter T. schrieb:
>> Inkrement am Schleifenende. Gut, daß Deine Oma das nicht liest.
>
> Hmmm ... die Praxis gibt dir ja vollkommen recht, aber so
> selbtverständlich un dlogisch finde ich das trotzdem nicht.
>
> Ist die for-Schleife nicht ein pre-cehck-loop? Denn wenn da z.B. stünde
>
> for(int i=3; i<3 ...
>
> wird ja garnicht erst hineingegangen. Typisch pre-check.
>
> Das würde aber eigentlich auch implizieren, dass bei ++i das i zuerst
> inkrementiert wird, bevor es in der Schleife ausgegeben wird ...
Mal abgesehen davon, dass das in den Büchern, sämtlichen Internettexten
und im Standard völlig eindeutig definiert ist ...
Logik hängt immer von den Prämissen ab.
Die Voraussetzung der Anwendbarkeit von "Logik" an sich, als Argument
für eine bestimmten Schlussfolgerung zu benutzen, ist unlogisch.
An sich ist das auch eher eine Berufung auf den "gesunden
Menschenverstand", vor dem man sich, wie die Erfahrung zeigt, sehr in
Acht nehmen muss. Er täuscht nämlich leider oft.
Ich rate dazu, in solchen Fällen immer die Prämisse oder das Axiom
ausdrücklich zu formulieren. Dann kann man auch überprüfen, ob sie
(resp. es) zutrifft.
Hier war das Axiom: Der Ausdruck "for (Initialisierung Prüfung;
Anweisung) [ Rumpf }" wird in der Folge Initialisierung, Prüfung,
Anweisung ohne Alternative ausgeführt, bevor der Rumpf ausgeführt
wird.
Ganz offenbar trifft das nicht zu. Man muss sogar sagen: Es muss nicht
zutreffen. Das ist nicht die einzige plausible, rationale Methode das
Verhalten festzulegen.